summaryrefslogtreecommitdiff
path: root/vm.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-09 01:29:24 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-09 01:29:24 +0000
commit4c040861c885b7446ae0a7ab786cc7994abf83e4 (patch)
tree5f4c1ef570f4afc4aaa19961cab944695bc4c39f /vm.c
parent9f6de20f5879ea8460e74e2b7bf1e989cc6573cb (diff)
* eval.c (rb_invoke_method): check if invoked in function style.
[ruby-core:13245] * insnhelper.ci (vm_call_cfunc, vm_cfunc_flags): stores and returns VM calling flags. * vm.c (rb_vm_cfunc_funcall_p): returns if the current method is invoked in function style. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/vm.c b/vm.c
index 0267ee93a4..46e711d9b6 100644
--- a/vm.c
+++ b/vm.c
@@ -1436,6 +1436,14 @@ rb_vm_call_cfunc(VALUE recv, VALUE (*func)(VALUE), VALUE arg, rb_block_t *blockp
return val;
}
+int
+rb_vm_cfunc_funcall_p(rb_control_frame_t *cfp)
+{
+ if (vm_cfunc_flags(cfp) & (VM_CALL_FCALL_BIT | VM_CALL_VCALL_BIT))
+ return Qtrue;
+ return Qfalse;
+}
+
/* vm */
static void