diff options
author | Victor Stinner <vstinner@redhat.com> | 2018-10-25 11:31:16 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-25 11:31:16 (GMT) |
commit | 9e00e80e213ebc37eff89ce72102c1f928ebc133 (patch) | |
tree | 50b24d69615a7994aeb4d776adc8666fcec5aafd /Include/object.h | |
parent | d7c3e5f0e89cb807093e33165815c8bbd3c00f4b (diff) | |
download | cpython-9e00e80e213ebc37eff89ce72102c1f928ebc133.zip cpython-9e00e80e213ebc37eff89ce72102c1f928ebc133.tar.gz cpython-9e00e80e213ebc37eff89ce72102c1f928ebc133.tar.bz2 |
bpo-35053: Enhance tracemalloc to trace free lists (GH-10063)
tracemalloc now tries to update the traceback when an object is
reused from a "free list" (optimization for faster object creation,
used by the builtin list type for example).
Changes:
* Add _PyTraceMalloc_NewReference() function which tries to update
the Python traceback of a Python object.
* _Py_NewReference() now calls _PyTraceMalloc_NewReference().
* Add an unit test.
Diffstat (limited to 'Include/object.h')
-rw-r--r-- | Include/object.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Include/object.h b/Include/object.h index bcf78af..8cd57d2 100644 --- a/Include/object.h +++ b/Include/object.h @@ -776,6 +776,9 @@ PyAPI_FUNC(void) _Py_AddToAllObjects(PyObject *, int force); * inline. */ #define _Py_NewReference(op) ( \ + (_Py_tracemalloc_config.tracing \ + ? _PyTraceMalloc_NewReference(op) \ + : 0), \ _Py_INC_TPALLOCS(op) _Py_COUNT_ALLOCS_COMMA \ _Py_INC_REFTOTAL _Py_REF_DEBUG_COMMA \ Py_REFCNT(op) = 1) |