File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -2037,6 +2037,7 @@ PyObject * _PyTrash_delete_later = NULL;
2037
2037
void
2038
2038
_PyTrash_deposit_object (PyObject * op )
2039
2039
{
2040
+ #ifndef WITH_CYCLE_GC
2040
2041
int typecode ;
2041
2042
2042
2043
if (PyTuple_Check (op ))
@@ -2054,8 +2055,11 @@ _PyTrash_deposit_object(PyObject *op)
2054
2055
return ; /* pacify compiler -- execution never here */
2055
2056
}
2056
2057
op -> ob_refcnt = typecode ;
2057
-
2058
2058
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
2059
2063
_PyTrash_delete_later = op ;
2060
2064
}
2061
2065
@@ -2064,6 +2068,8 @@ _PyTrash_destroy_chain(void)
2064
2068
{
2065
2069
while (_PyTrash_delete_later ) {
2066
2070
PyObject * shredder = _PyTrash_delete_later ;
2071
+
2072
+ #ifndef WITH_CYCLE_GC
2067
2073
_PyTrash_delete_later = (PyObject * ) shredder -> ob_type ;
2068
2074
2069
2075
switch (shredder -> ob_refcnt ) {
@@ -2083,6 +2089,11 @@ _PyTrash_destroy_chain(void)
2083
2089
shredder -> ob_type = & PyTraceBack_Type ;
2084
2090
break ;
2085
2091
}
2092
+ #else
2093
+ _PyTrash_delete_later =
2094
+ (PyObject * ) _Py_AS_GC (shredder )-> gc .gc_prev ;
2095
+ #endif
2096
+
2086
2097
_Py_NewReference (shredder );
2087
2098
2088
2099
++ _PyTrash_delete_nesting ;
You can’t perform that action at this time.
0 commit comments