[Python-checkins] bpo-39542: Declare _Py_AddToAllObjects() in pycore_object.h (GH-18368)

Victor Stinner webhook-mailer at python.org
Wed Feb 5 12:24:42 EST 2020


https://github.com/python/cpython/commit/58f4e1a6ee4c6ea82f3f5075d9d9d344ce6b8a56
commit: 58f4e1a6ee4c6ea82f3f5075d9d9d344ce6b8a56
branch: master
author: Victor Stinner <vstinner at python.org>
committer: GitHub <noreply at github.com>
date: 2020-02-05T18:24:33+01:00
summary:

bpo-39542: Declare _Py_AddToAllObjects() in pycore_object.h (GH-18368)

_Py_AddToAllObjects() is used in bltinmodule.c and typeobject.c when
Py_TRACE_REFS is defined.

Fix Py_TRACE_REFS build.

files:
M Include/internal/pycore_object.h
M Objects/object.c
M Python/bltinmodule.c

diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h
index eac39c8a3fccc..10a5746997ec7 100644
--- a/Include/internal/pycore_object.h
+++ b/Include/internal/pycore_object.h
@@ -82,6 +82,7 @@ extern void _PyDebug_PrintTotalRefs(void);
 #endif
 
 #ifdef Py_TRACE_REFS
+extern void _Py_AddToAllObjects(PyObject *op, int force);
 extern void _Py_PrintReferences(FILE *);
 extern void _Py_PrintReferenceAddresses(FILE *);
 #endif
diff --git a/Objects/object.c b/Objects/object.c
index 43b838adff20c..9eaa163bdfd1f 100644
--- a/Objects/object.c
+++ b/Objects/object.c
@@ -93,7 +93,7 @@ static PyObject refchain = {&refchain, &refchain};
  * way, though; exceptions include statically allocated type objects, and
  * statically allocated singletons (like Py_True and Py_None).
  */
-static void
+void
 _Py_AddToAllObjects(PyObject *op, int force)
 {
 #ifdef  Py_DEBUG
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 5818eb9e38f6a..cdb1eaaff01de 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -4,6 +4,7 @@
 #include <ctype.h>
 #include "ast.h"
 #undef Yield   /* undefine macro conflicting with <winbase.h> */
+#include "pycore_object.h"
 #include "pycore_pyerrors.h"
 #include "pycore_pystate.h"
 #include "pycore_tupleobject.h"
@@ -2443,7 +2444,7 @@ builtin_sum_impl(PyObject *module, PyObject *iterable, PyObject *start)
            would change the value of empty. In fact, using
            in-place addition rather that binary addition for
            any of the steps introduces subtle behavior changes:
-           
+
            https://bugs.python.org/issue18305 */
         temp = PyNumber_Add(result, item);
         Py_DECREF(result);



More information about the Python-checkins mailing list