mirror of https://github.com/python/cpython
clear out f_gen during generator finalization (closes #27812)
Patch from Armin Rigo.
This commit is contained in:
parent
80109d3351
commit
bdddb11b0e
|
@ -10,6 +10,9 @@ Release date: TBA
|
|||
Core and Builtins
|
||||
-----------------
|
||||
|
||||
- Issue #27812: Properly clear out a generator's frame's backreference to the
|
||||
generator to prevent crashes in frame.clear().
|
||||
|
||||
- Issue #27811: Fix a crash when a coroutine that has not been awaited is
|
||||
finalized with warnings-as-errors enabled.
|
||||
|
||||
|
|
|
@ -71,7 +71,10 @@ gen_dealloc(PyGenObject *gen)
|
|||
return; /* resurrected. :( */
|
||||
|
||||
_PyObject_GC_UNTRACK(self);
|
||||
Py_CLEAR(gen->gi_frame);
|
||||
if (gen->gi_frame != NULL) {
|
||||
gen->gi_frame->f_gen = NULL;
|
||||
Py_CLEAR(gen->gi_frame);
|
||||
}
|
||||
Py_CLEAR(gen->gi_code);
|
||||
Py_CLEAR(gen->gi_name);
|
||||
Py_CLEAR(gen->gi_qualname);
|
||||
|
|
Loading…
Reference in New Issue