[3.13] Update retroactive comments from GH-117741 (segfault in `FutureIter_dealloc`) (GH-121638) (GH-121642)

Update retroactive comments from GH-117741 (segfault in `FutureIter_dealloc`) (GH-121638)

Address comments
(cherry picked from commit 65fededf9c)

Co-authored-by: Savannah Ostrowski <savannahostrowski@gmail.com>
This commit is contained in:
Miss Islington (bot) 2024-07-12 11:00:09 +02:00 committed by GitHub
parent 35f7155bc3
commit 15c875a57c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 13 deletions

View File

@ -354,16 +354,6 @@ asend().throw()
.. ..
.. date: 2024-04-13-18-59-25
.. gh-issue: 115874
.. nonce: c3xG-E
.. section: Core and Builtins
Fixed a possible segfault during garbage collection of
``_asyncio.FutureIter`` objects
..
.. date: 2024-04-13-16-55-53 .. date: 2024-04-13-16-55-53
.. gh-issue: 117536 .. gh-issue: 117536
.. nonce: xkVbfv .. nonce: xkVbfv
@ -883,6 +873,16 @@ Alex Waygood.
.. ..
.. date: 2024-04-13-18-59-25
.. gh-issue: 115874
.. nonce: c3xG-E
.. section: Library
Fixed a possible segfault during garbage collection of
``_asyncio.FutureIter`` objects. Patch by Savannah Ostrowski.
..
.. date: 2024-04-13-01-45-15 .. date: 2024-04-13-01-45-15
.. gh-issue: 115060 .. gh-issue: 115060
.. nonce: IxoM03 .. nonce: IxoM03

View File

@ -1602,7 +1602,6 @@ FutureIter_dealloc(futureiterobject *it)
{ {
PyTypeObject *tp = Py_TYPE(it); PyTypeObject *tp = Py_TYPE(it);
// FutureIter is a heap type so any subclass must also be a heap type.
assert(_PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE)); assert(_PyType_HasFeature(tp, Py_TPFLAGS_HEAPTYPE));
PyObject *module = ((PyHeapTypeObject*)tp)->ht_module; PyObject *module = ((PyHeapTypeObject*)tp)->ht_module;
@ -1613,8 +1612,6 @@ FutureIter_dealloc(futureiterobject *it)
// GH-115874: We can't use PyType_GetModuleByDef here as the type might have // GH-115874: We can't use PyType_GetModuleByDef here as the type might have
// already been cleared, which is also why we must check if ht_module != NULL. // already been cleared, which is also why we must check if ht_module != NULL.
// Due to this restriction, subclasses that belong to a different module
// will not be able to use the free list.
if (module && _PyModule_GetDef(module) == &_asynciomodule) { if (module && _PyModule_GetDef(module) == &_asynciomodule) {
state = get_asyncio_state(module); state = get_asyncio_state(module);
} }