colesbury · GitHub

Bug report

#undef Py_DECREF
#define Py_DECREF(arg) \
do { \
PyObject *op = _PyObject_CAST(arg); \
if (_Py_IsImmortal(op)) { \
_Py_DECREF_IMMORTAL_STAT_INC(); \
break; \
} \
_Py_DECREF_STAT_INC(); \
if (--op->ob_refcnt == 0) { \
destructor dealloc = Py_TYPE(op)->tp_dealloc; \
(*dealloc)(op); \
} \
} while (0)

Tracemalloc only handles PyRefTracer_CREATE events and we don't have any tests for PyRefTracer_DESTROY events.

EDIT: _testcapimodule.c tests PyRefTracer_DESTROY events, but only through the C API and not the Python interpreter.

Linked PRs

Read the original on github.com ↗