mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
GH-128563: Add new frame owner type for interpreter entry frames (GH-129078)
Add new frame owner type for interpreter entry frames
This commit is contained in:
parent
d3b1bb228c
commit
f5b6356a11
13 changed files with 33 additions and 48 deletions
|
@ -1090,7 +1090,7 @@ dummy_func(
|
|||
}
|
||||
|
||||
tier1 inst(INTERPRETER_EXIT, (retval --)) {
|
||||
assert(frame == &entry_frame);
|
||||
assert(frame->owner == FRAME_OWNED_BY_INTERPRETER);
|
||||
assert(_PyFrame_IsIncomplete(frame));
|
||||
/* Restore previous frame and return. */
|
||||
tstate->current_frame = frame->previous;
|
||||
|
@ -1105,9 +1105,7 @@ dummy_func(
|
|||
// retval is popped from the stack, but res
|
||||
// is pushed to a different frame, the callers' frame.
|
||||
inst(RETURN_VALUE, (retval -- res)) {
|
||||
#if TIER_ONE
|
||||
assert(frame != &entry_frame);
|
||||
#endif
|
||||
assert(frame->owner != FRAME_OWNED_BY_INTERPRETER);
|
||||
_PyStackRef temp = retval;
|
||||
DEAD(retval);
|
||||
SAVE_STACK();
|
||||
|
@ -1205,7 +1203,7 @@ dummy_func(
|
|||
PyObject *receiver_o = PyStackRef_AsPyObjectBorrow(receiver);
|
||||
|
||||
PyObject *retval_o;
|
||||
assert(frame != &entry_frame);
|
||||
assert(frame->owner != FRAME_OWNED_BY_INTERPRETER);
|
||||
if ((tstate->interp->eval_frame == NULL) &&
|
||||
(Py_TYPE(receiver_o) == &PyGen_Type || Py_TYPE(receiver_o) == &PyCoro_Type) &&
|
||||
((PyGenObject *)receiver_o)->gi_frame_state < FRAME_EXECUTING)
|
||||
|
@ -1278,9 +1276,7 @@ dummy_func(
|
|||
// NOTE: It's important that YIELD_VALUE never raises an exception!
|
||||
// The compiler treats any exception raised here as a failed close()
|
||||
// or throw() call.
|
||||
#if TIER_ONE
|
||||
assert(frame != &entry_frame);
|
||||
#endif
|
||||
assert(frame->owner != FRAME_OWNED_BY_INTERPRETER);
|
||||
frame->instr_ptr++;
|
||||
PyGenObject *gen = _PyGen_GetGeneratorFromFrame(frame);
|
||||
assert(FRAME_SUSPENDED_YIELD_FROM == FRAME_SUSPENDED + 1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue