# HG changeset patch # User anatofuz # Date 1541152381 -32400 # Node ID 434c28ad3b8020eb6e0803d5c6d9ce21ddfb854c # Parent 005049773e61ecb389d1d9f8cd2738dfa8d80949 fix invoke function diff -r 005049773e61 -r 434c28ad3b80 src/core/cbc-interp.cbc --- a/src/core/cbc-interp.cbc Fri Nov 02 18:26:39 2018 +0900 +++ b/src/core/cbc-interp.cbc Fri Nov 02 18:53:01 2018 +0900 @@ -956,7 +956,6 @@ goto NEXT(i); } __code cbc_invoke_v(INTERP i){ - { MVMObject *code = GET_REG(i->cur_op, 0,i).o; MVMRegister *args = i->tc->cur_frame->args; MVMuint16 was_multi = 0; @@ -973,11 +972,10 @@ i->tc->cur_frame->return_type = MVM_RETURN_VOID; i->cur_op += 2; i->tc->cur_frame->return_address = i->cur_op; - goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); - } + STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); + goto NEXT(i); } __code cbc_invoke_i(INTERP i){ - { MVMObject *code = GET_REG(i->cur_op, 2,i).o; MVMRegister *args = i->tc->cur_frame->args; MVMuint16 was_multi = 0; @@ -992,11 +990,10 @@ i->tc->cur_frame->return_type = MVM_RETURN_INT; i->cur_op += 4; i->tc->cur_frame->return_address = i->cur_op; - goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); - } + STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); + goto NEXT(i); } __code cbc_invoke_n(INTERP i){ - { MVMObject *code = GET_REG(i->cur_op, 2,i).o; MVMRegister *args = i->tc->cur_frame->args; MVMuint16 was_multi = 0; @@ -1011,8 +1008,9 @@ i->tc->cur_frame->return_type = MVM_RETURN_NUM; i->cur_op += 4; i->tc->cur_frame->return_address = i->cur_op; - goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); - } + STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); + goto NEXT(i); + } __code cbc_invoke_s(INTERP i){ MVMObject *code = GET_REG(i->cur_op, 2,i).o; @@ -1029,8 +1027,8 @@ i->tc->cur_frame->return_type = MVM_RETURN_STR; i->cur_op += 4; i->tc->cur_frame->return_address = i->cur_op; - goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); - goto NEXT(i); + STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); + goto NEXT(i); } __code cbc_invoke_o(INTERP i){ MVMObject *code = GET_REG(i->cur_op, 2,i).o; @@ -1047,8 +1045,8 @@ i->tc->cur_frame->return_type = MVM_RETURN_OBJ; i->cur_op += 4; i->tc->cur_frame->return_address = i->cur_op; - goto STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); - goto NEXT(i); + STABLE(code)->invoke(i->tc, code, i->cur_callsite, args); + goto NEXT(i); } __code cbc_checkarity(INTERP i){ MVM_args_checkarity(i->tc, &i->tc->cur_frame->params, GET_UI16(i->cur_op, 0), GET_UI16(i->cur_op, 2));