File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2037,6 +2037,7 @@ PyObject * _PyTrash_delete_later = NULL;
20372037void
20382038_PyTrash_deposit_object (PyObject * op )
20392039{
2040+ #ifndef WITH_CYCLE_GC
20402041 int typecode ;
20412042
20422043 if (PyTuple_Check (op ))
@@ -2054,8 +2055,11 @@ _PyTrash_deposit_object(PyObject *op)
20542055 return ; /* pacify compiler -- execution never here */
20552056 }
20562057 op -> ob_refcnt = typecode ;
2057-
20582058 op -> ob_type = (PyTypeObject * )_PyTrash_delete_later ;
2059+ #else
2060+ assert (_Py_AS_GC (op )-> gc .gc_next == NULL );
2061+ _Py_AS_GC (op )-> gc .gc_prev = (PyGC_Head * )_PyTrash_delete_later ;
2062+ #endif
20592063 _PyTrash_delete_later = op ;
20602064}
20612065
@@ -2064,6 +2068,8 @@ _PyTrash_destroy_chain(void)
20642068{
20652069 while (_PyTrash_delete_later ) {
20662070 PyObject * shredder = _PyTrash_delete_later ;
2071+
2072+ #ifndef WITH_CYCLE_GC
20672073 _PyTrash_delete_later = (PyObject * ) shredder -> ob_type ;
20682074
20692075 switch (shredder -> ob_refcnt ) {
@@ -2083,6 +2089,11 @@ _PyTrash_destroy_chain(void)
20832089 shredder -> ob_type = & PyTraceBack_Type ;
20842090 break ;
20852091 }
2092+ #else
2093+ _PyTrash_delete_later =
2094+ (PyObject * ) _Py_AS_GC (shredder )-> gc .gc_prev ;
2095+ #endif
2096+
20862097 _Py_NewReference (shredder );
20872098
20882099 ++ _PyTrash_delete_nesting ;
You can’t perform that action at this time.
0 commit comments