In debug mode, visit_decref() now calls _PyObject_IsFreed() to ensure
that the object is not freed. If it's freed, the program fails with
an assertion error and Python dumps informations about the freed
object.
(cherry picked from commit
d91d4de31745fc1ed4c7e6c208917827c9c472b6)
Co-authored-by: Victor Stinner <vstinner@redhat.com>
visit_decref(PyObject *op, void *data)
{
assert(op != NULL);
+ _PyObject_ASSERT(op, !_PyObject_IsFreed(op));
+
if (PyObject_IS_GC(op)) {
PyGC_Head *gc = AS_GC(op);
/* We're only interested in gc_refs for objects in the