Commit 0247e80f authored by Eddie Elizondo's avatar Eddie Elizondo Committed by Dino Viehland

Fix leaks in Python-ast.c (#16127)

parent 279f4467
...@@ -638,9 +638,13 @@ static void ...@@ -638,9 +638,13 @@ static void
ast_dealloc(AST_object *self) ast_dealloc(AST_object *self)
{ {
/* bpo-31095: UnTrack is needed before calling any callbacks */ /* bpo-31095: UnTrack is needed before calling any callbacks */
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self); PyObject_GC_UnTrack(self);
Py_CLEAR(self->dict); Py_CLEAR(self->dict);
Py_TYPE(self)->tp_free(self); freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
assert(free_func != NULL);
free_func(self);
Py_DECREF(tp);
} }
static int static int
......
...@@ -1130,9 +1130,13 @@ static void ...@@ -1130,9 +1130,13 @@ static void
ast_dealloc(AST_object *self) ast_dealloc(AST_object *self)
{ {
/* bpo-31095: UnTrack is needed before calling any callbacks */ /* bpo-31095: UnTrack is needed before calling any callbacks */
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self); PyObject_GC_UnTrack(self);
Py_CLEAR(self->dict); Py_CLEAR(self->dict);
Py_TYPE(self)->tp_free(self); freefunc free_func = PyType_GetSlot(tp, Py_tp_free);
assert(free_func != NULL);
free_func(self);
Py_DECREF(tp);
} }
static int static int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment