gh-126076: Account for relocated objects in tracemalloc (#126077)

This commit is contained in:
Pablo Galindo Salgado 2024-11-19 10:35:17 +00:00 committed by GitHub
parent 899fdb213d
commit 30aeb00d36
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 18 additions and 25 deletions

View file

@ -2457,11 +2457,7 @@ new_reference(PyObject *op)
#ifdef Py_TRACE_REFS
_Py_AddToAllObjects(op);
#endif
struct _reftracer_runtime_state *tracer = &_PyRuntime.ref_tracer;
if (tracer->tracer_func != NULL) {
void* data = tracer->tracer_data;
tracer->tracer_func(op, PyRefTracer_CREATE, data);
}
_PyReftracerTrack(op, PyRefTracer_CREATE);
}
void
@ -2554,10 +2550,6 @@ _Py_ResurrectReference(PyObject *op)
#ifdef Py_TRACE_REFS
_Py_AddToAllObjects(op);
#endif
if (_PyRuntime.ref_tracer.tracer_func != NULL) {
void* data = _PyRuntime.ref_tracer.tracer_data;
_PyRuntime.ref_tracer.tracer_func(op, PyRefTracer_CREATE, data);
}
}
@ -2947,15 +2939,10 @@ _Py_Dealloc(PyObject *op)
Py_INCREF(type);
#endif
struct _reftracer_runtime_state *tracer = &_PyRuntime.ref_tracer;
if (tracer->tracer_func != NULL) {
void* data = tracer->tracer_data;
tracer->tracer_func(op, PyRefTracer_DESTROY, data);
}
#ifdef Py_TRACE_REFS
_Py_ForgetReference(op);
#endif
_PyReftracerTrack(op, PyRefTracer_DESTROY);
(*dealloc)(op);
#ifdef Py_DEBUG