diff options
Diffstat (limited to 'Python/executor_cases.c.h')
-rw-r--r-- | Python/executor_cases.c.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index 470c82d938a..d390c9fc2f6 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -971,8 +971,9 @@ break; } - case _POP_FRAME: { + case _RETURN_VALUE: { PyObject *retval; + PyObject *res; retval = stack_pointer[-1]; #if TIER_ONE assert(frame != &entry_frame); @@ -985,10 +986,12 @@ _PyInterpreterFrame *dying = frame; frame = tstate->current_frame = dying->previous; _PyEval_FrameClearAndPop(tstate, dying); - _PyFrame_StackPush(frame, retval); LOAD_SP(); LOAD_IP(frame->return_offset); + res = retval; LLTRACE_RESUME_FRAME(); + stack_pointer[0] = res; + stack_pointer += 1; break; } |