diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-09-08 08:21:07 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-09-08 08:21:07 +0000 |
commit | eec17b718ae04b9bcff215114a156dcb25eb1458 (patch) | |
tree | 4133d3187ea216692013cfb2e59b396939ce8f07 /insns.def | |
parent | d3022c424cffc1e92b751e72fb450408e853e388 (diff) |
* vm_core.h: remove rb_call_info_t::blockiseq.
* insns.def (send, invokesuper): pass blockiseq explicitly.
* compile.c: catch up this fix.
* iseq.c: ditto.
* vm_args.c: ditto.
* iseq.c (ISEQ_MINOR_VERSION): 2->3 because instruction spec was
changed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -936,12 +936,12 @@ defineclass */ DEFINE_INSN send -(CALL_INFO ci) +(CALL_INFO ci, ISEQ iseq) (...) (VALUE val) // inc += - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0)); { ci->argc = ci->orig_argc; - vm_caller_setup_arg_block(th, reg_cfp, ci, FALSE); + vm_caller_setup_arg_block(th, reg_cfp, ci, iseq, FALSE); vm_search_method(ci, ci->recv = TOPN(ci->argc)); CALL_METHOD(ci); } @@ -983,12 +983,12 @@ opt_send_without_block */ DEFINE_INSN invokesuper -(CALL_INFO ci) +(CALL_INFO ci, ISEQ iseq) (...) (VALUE val) // inc += - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0)); { ci->argc = ci->orig_argc; - vm_caller_setup_arg_block(th, reg_cfp, ci, TRUE); + vm_caller_setup_arg_block(th, reg_cfp, ci, iseq, TRUE); ci->recv = GET_SELF(); vm_search_super_method(th, GET_CFP(), ci); CALL_METHOD(ci); |