bpo-35053: Define _PyTraceMalloc_NewReference in object.h (GH-10107)

_PyTraceMalloc_NewReference() is now called by _Py_NewReference(), so
move its definition to object.h. Moreover, define it even if
Py_LIMITED_API is defined, since _Py_NewReference() is also exposed
even if Py_LIMITED_API is defined.
This commit is contained in:
Victor Stinner 2018-10-26 00:01:56 +02:00 committed by GitHub
parent 6c83d9f4a7
commit c89a932714
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 4 deletions

View File

@ -765,6 +765,10 @@ PyAPI_FUNC(void) dec_count(PyTypeObject *);
#define _Py_COUNT_ALLOCS_COMMA #define _Py_COUNT_ALLOCS_COMMA
#endif /* COUNT_ALLOCS */ #endif /* COUNT_ALLOCS */
/* Update the Python traceback of an object. This function must be called
when a memory block is reused from a free list. */
PyAPI_FUNC(int) _PyTraceMalloc_NewReference(PyObject *op);
#ifdef Py_TRACE_REFS #ifdef Py_TRACE_REFS
/* Py_TRACE_REFS is such major surgery that we call external routines. */ /* Py_TRACE_REFS is such major surgery that we call external routines. */
PyAPI_FUNC(void) _Py_NewReference(PyObject *); PyAPI_FUNC(void) _Py_NewReference(PyObject *);

View File

@ -14,10 +14,6 @@ PyAPI_FUNC(int) PyTraceMalloc_Track(
uintptr_t ptr, uintptr_t ptr,
size_t size); size_t size);
/* Update the Python traceback of an object.
This function can be used when a memory block is reused from a free list. */
PyAPI_FUNC(int) _PyTraceMalloc_NewReference(PyObject *op);
/* Untrack an allocated memory block in the tracemalloc module. /* Untrack an allocated memory block in the tracemalloc module.
Do nothing if the block was not tracked. Do nothing if the block was not tracked.

View File

@ -129,6 +129,9 @@ _io -DPy_BUILD_CORE -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fil
faulthandler faulthandler.c faulthandler faulthandler.c
# debug tool to trace memory blocks allocated by Python # debug tool to trace memory blocks allocated by Python
#
# bpo-35053: The module must be builtin since _Py_NewReference()
# can call _PyTraceMalloc_NewReference().
_tracemalloc _tracemalloc.c hashtable.c _tracemalloc _tracemalloc.c hashtable.c
# The rest of the modules listed in this file are all commented out by # The rest of the modules listed in this file are all commented out by