]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-106320: Don't export _Py_ForgetReference() function (#108712)
authorVictor Stinner <vstinner@python.org>
Thu, 31 Aug 2023 09:15:31 +0000 (11:15 +0200)
committerGitHub <noreply@github.com>
Thu, 31 Aug 2023 09:15:31 +0000 (09:15 +0000)
There is no need to export the _Py_ForgetReference() function of the
Py_TRACE_REFS build. It's not used by shared extensions. Enhance also
its comment.

Include/internal/pycore_object.h

index 7cb822e6af975053864b9686c53dceb42a5d50e3..7c142b384d17fd593a549c6575e0f279f6519bed 100644 (file)
@@ -32,8 +32,14 @@ extern void _PyDebugAllocatorStats(FILE *out, const char *block_name,
 extern void _PyObject_DebugTypeStats(FILE *out);
 
 #ifdef Py_TRACE_REFS
-/* Py_TRACE_REFS is such major surgery that we call external routines. */
-PyAPI_FUNC(void) _Py_ForgetReference(PyObject *);
+// Forget a reference registered by _Py_NewReference(). Function called by
+// _Py_Dealloc().
+//
+// On a free list, the function can be used before modifying an object to
+// remove the object from traced objects. Then _Py_NewReference() or
+// _Py_NewReferenceNoTotal() should be called again on the object to trace
+// it again.
+extern void _Py_ForgetReference(PyObject *);
 #endif
 
 // Export for shared _testinternalcapi extension