]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
GH-138355: Remove trash_delete_later from _gc_runtime_state (#138767)
authorSergey Miryanov <sergey.miryanov@gmail.com>
Wed, 17 Sep 2025 20:25:24 +0000 (13:25 -0700)
committerGitHub <noreply@github.com>
Wed, 17 Sep 2025 20:25:24 +0000 (21:25 +0100)
Remove trash_delete_later and trash_delete_nesting from _gc_runtime_state.

Include/cpython/pystate.h
Include/internal/pycore_interp_structs.h
Objects/object.c

index 555641943423b4b1781ef101cabe3b21113b7eb2..bd9d8aaefe5400f81f4c999a340248a3301d2eb7 100644 (file)
@@ -157,6 +157,11 @@ struct _ts {
      */
     unsigned long native_thread_id;
 
+    /* List of objects that still need to be cleaned up, singly linked
+     * via their gc headers' gc_next pointers. The list is populated by
+     * _PyTrash_thread_deposit_object and cleaned up by
+     * _PyTrash_thread_destroy_chain.
+     */
     PyObject *delete_later;
 
     /* Tagged pointer to top-most critical section, or zero if there is no
index 4c55770e01da4fb7e266bffd864a7375eabca10a..0e039de8ae05b3a5281a7abd9a93999e2d7514fd 100644 (file)
@@ -203,12 +203,6 @@ enum _GCPhase {
 #define NUM_GENERATIONS 3
 
 struct _gc_runtime_state {
-    /* List of objects that still need to be cleaned up, singly linked
-     * via their gc headers' gc_prev pointers.  */
-    PyObject *trash_delete_later;
-    /* Current call-stack depth of tp_dealloc calls. */
-    int trash_delete_nesting;
-
     /* Is automatic collection enabled? */
     int enabled;
     int debug;
index 1f10c2531fead1b86aad2715ec9dfdf5bfcfe4f2..0540112d7d2acf4976cab6f30899495e320f1772 100644 (file)
@@ -3051,7 +3051,7 @@ finally:
 
 /* Trashcan support. */
 
-/* Add op to the gcstate->trash_delete_later list.  Called when the current
+/* Add op to the tstate->delete_later list.  Called when the current
  * call-stack depth gets large.  op must be a gc'ed object, with refcount 0.
  *  Py_DECREF must already have been called on it.
  */
@@ -3077,7 +3077,7 @@ _PyTrash_thread_deposit_object(PyThreadState *tstate, PyObject *op)
     tstate->delete_later = op;
 }
 
-/* Deallocate all the objects in the gcstate->trash_delete_later list.
+/* Deallocate all the objects in the tstate->delete_later list.
  * Called when the call-stack unwinds again. */
 void
 _PyTrash_thread_destroy_chain(PyThreadState *tstate)