summaryrefslogtreecommitdiff
path: root/vm_eval.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-04-03 02:43:20 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-04-03 02:43:20 +0000
commitc0bf2c5efec6e5c94236ca24cd35de5869ed7216 (patch)
tree2e90248c9c584d266fd13702310987c64a123136 /vm_eval.c
parent337fafc64147d32cce5c509f8c841b4e5e846d60 (diff)
vm_core.h: update for OPT_CALL_CFUNC_WITHOUT_FRAME
* vm_eval.c (vm_call0_cfunc): update invoker arguments. * vm_insnhelper.c (vm_call_cfunc_latter): ditto. * vm_insnhelper.c (rb_vm_call_cfunc_push_frame): ditto, and prefix with rb_. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_eval.c')
-rw-r--r--vm_eval.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/vm_eval.c b/vm_eval.c
index ae2c9ca..b63eec2 100644
--- a/vm_eval.c
+++ b/vm_eval.c
@@ -71,13 +71,15 @@ vm_call0_cfunc(rb_thread_t* th, rb_call_info_t *ci, const VALUE *argv)
const rb_method_entry_t *me = ci->me;
const rb_method_cfunc_t *cfunc = &me->def->body.cfunc;
int len = cfunc->argc;
+ VALUE recv = ci->recv;
+ int argc = ci->argc;
if (len >= 0) rb_check_arity(ci->argc, len, len);
th->passed_ci = ci;
ci->aux.inc_sp = 0;
VM_PROFILE_UP(2);
- val = (*cfunc->invoker)(cfunc->func, ci, argv);
+ val = (*cfunc->invoker)(cfunc->func, recv, argc, argv);
if (reg_cfp == th->cfp) {
if (UNLIKELY(th->passed_ci != ci)) {