--- parser3/src/main/execute.C 2016/10/25 23:37:52 1.393 +++ parser3/src/main/execute.C 2016/11/01 22:53:20 1.395 @@ -21,7 +21,7 @@ #include "pa_vimage.h" #include "pa_wwrapper.h" -volatile const char * IDENT_EXECUTE_C="$Id: execute.C,v 1.393 2016/10/25 23:37:52 moko Exp $" IDENT_PA_OPCODE_H IDENT_PA_OPERATION_H IDENT_PA_VCODE_FRAME_H IDENT_PA_WWRAPPER_H; +volatile const char * IDENT_EXECUTE_C="$Id: execute.C,v 1.395 2016/11/01 22:53:20 moko Exp $" IDENT_PA_OPCODE_H IDENT_PA_OPERATION_H IDENT_PA_VCODE_FRAME_H IDENT_PA_WWRAPPER_H; //#define DEBUG_EXECUTE @@ -773,10 +773,10 @@ void Request::execute(ArrayOperation& op Value *result; { - VMethodFrame frame(*junction->method, method_frame, junction->self); - METHOD_FRAME_ACTION(call_expression(frame)); + VExpressionFrame frame(*junction->method, method_frame, junction->self); + METHOD_FRAME_ACTION(call(frame)); result=&frame.result(); - // VMethodFrame desctructor deletes junctions in stack params here + // desctructor deletes junctions in stack params here } stack.push(*result); @@ -882,7 +882,7 @@ void Request::execute(ArrayOperation& op METHOD_FRAME_ACTION(call(frame)); object.enable_default_setter(); result=&frame.result(); - // VMethodFrame desctructor deletes junctions in stack params here + // desctructor deletes junctions in stack params here } if(opcode==OP::OP_CONSTRUCT_OBJECT) @@ -1254,17 +1254,6 @@ void Request::call(VMethodFrame& frame){ rcontext=wcontext=method_frame=&frame; do_call(frame, *this); - - RESTORE_CONTEXT -} - -void Request::call_expression(VMethodFrame& frame){ - SAVE_CONTEXT - - frame.set_in_expression(true); - rcontext=wcontext=method_frame=&frame; - - do_call(frame, *this); RESTORE_CONTEXT }