mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +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
|
@ -48,7 +48,7 @@ _PyFrame_MakeAndSetFrameObject(_PyInterpreterFrame *frame)
|
|||
static void
|
||||
take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame)
|
||||
{
|
||||
assert(frame->owner != FRAME_OWNED_BY_CSTACK);
|
||||
assert(frame->owner < FRAME_OWNED_BY_INTERPRETER);
|
||||
assert(frame->owner != FRAME_OWNED_BY_FRAME_OBJECT);
|
||||
Py_ssize_t size = ((char*)frame->stackpointer) - (char *)frame;
|
||||
memcpy((_PyInterpreterFrame *)f->_f_frame_data, frame, size);
|
||||
|
@ -69,7 +69,7 @@ take_ownership(PyFrameObject *f, _PyInterpreterFrame *frame)
|
|||
_PyInterpreterFrame *prev = _PyFrame_GetFirstComplete(frame->previous);
|
||||
frame->previous = NULL;
|
||||
if (prev) {
|
||||
assert(prev->owner != FRAME_OWNED_BY_CSTACK);
|
||||
assert(prev->owner < FRAME_OWNED_BY_INTERPRETER);
|
||||
/* Link PyFrameObjects.f_back and remove link through _PyInterpreterFrame.previous */
|
||||
PyFrameObject *back = _PyFrame_GetFrameObject(prev);
|
||||
if (back == NULL) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue