From: Victor Stinner Date: Thu, 31 Aug 2023 09:15:31 +0000 (+0200) Subject: gh-106320: Don't export _Py_ForgetReference() function (#108712) X-Git-Tag: v3.13.0a1~683 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=194c6fb85e02ecbb1eedb26601e9d503c4d25174;p=thirdparty%2FPython%2Fcpython.git gh-106320: Don't export _Py_ForgetReference() function (#108712) 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. --- diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index 7cb822e6af97..7c142b384d17 100644 --- a/Include/internal/pycore_object.h +++ b/Include/internal/pycore_object.h @@ -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