| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
Type recurse_down_subclasses() now calls _PyType_GetSubclasses() to iterate on a copy of subclasses, because its loop can modify subclasses: hold strong references to subclasses. * remove_subclass() now sets tp_subclasses to NULL if the dictionary becomes empty. * _PyType_GetSubclasses() no longer holds a reference to tp_subclasses: its loop cannot modify tp_subclasses. * remove_all_subclasses() no longer ignores objects which are not types: tp_bases must only contain types. Use _PyType_CAST() to ensure that the object is a type in debug mode. * mro_hierarchy() avoids _PyType_GetSubclasses() if tp_subclasses is NULL.
|
I wrote a real fix #30793 I will write a new cleanup PR on top on this fix PR. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Type recurse_down_subclasses() now calls _PyType_GetSubclasses() to
iterate on a copy of subclasses, because its loop can modify
subclasses: hold strong references to subclasses.
becomes empty.
tp_subclasses: its loop cannot modify tp_subclasses.
types: tp_bases must only contain types. Use _PyType_CAST() to
ensure that the object is a type in debug mode.
NULL.
https://bugs.python.org/issue46417