From: Victor Stinner Date: Wed, 5 Feb 2020 17:24:33 +0000 (+0100) Subject: bpo-39542: Declare _Py_AddToAllObjects() in pycore_object.h (GH-18368) X-Git-Tag: v3.9.0a4~126 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=58f4e1a6ee4c6ea82f3f5075d9d9d344ce6b8a56;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Include/internal/pycore_object.h b/Include/internal/pycore_object.h index eac39c8a3fcc..10a5746997ec 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 43b838adff20..9eaa163bdfd1 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 5818eb9e38f6..cdb1eaaff01d 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -4,6 +4,7 @@ #include #include "ast.h" #undef Yield /* undefine macro conflicting with */ +#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);