From eec17b718ae04b9bcff215114a156dcb25eb1458 Mon Sep 17 00:00:00 2001 From: ko1 Date: Tue, 8 Sep 2015 08:21:07 +0000 Subject: * 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 --- insns.def | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'insns.def') diff --git a/insns.def b/insns.def index abcd9a2fda..d27fd1a5b9 100644 --- a/insns.def +++ b/insns.def @@ -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); -- cgit v1.2.3