mirror of
https://github.com/python/cpython.git
synced 2025-11-02 11:08:57 +00:00
Refactored some of the Py_TRACE_REFS code. New private API function
_Py_AddToAllObjects() that simply inserts an object at the front of the doubly-linked list of all objects. Changed PyType_Ready() (the closest thing we've got to a choke point for type objects) to call that.
This commit is contained in:
parent
3e40c7ff5b
commit
36eb4dfb81
3 changed files with 27 additions and 10 deletions
|
|
@ -3052,6 +3052,18 @@ PyType_Ready(PyTypeObject *type)
|
|||
|
||||
type->tp_flags |= Py_TPFLAGS_READYING;
|
||||
|
||||
#ifdef Py_TRACE_REFS
|
||||
/* PyType_Ready is the closest thing we have to a choke point
|
||||
* for type objects, so is the best place I can think of to try
|
||||
* to get type objects into the doubly-linked list of all objects.
|
||||
* Still, not all type objects go thru PyType_Ready.
|
||||
*/
|
||||
if (type->_ob_next == NULL) {
|
||||
assert(type->_ob_prev == NULL);
|
||||
_Py_AddToAllObjects((PyObject *)type);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialize tp_base (defaults to BaseObject unless that's us) */
|
||||
base = type->tp_base;
|
||||
if (base == NULL && type != &PyBaseObject_Type)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue