From ba25fd471042064aeed69018cf5f523118172d4a Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Wed, 5 Feb 2025 19:17:32 +0800 Subject: [PATCH] fix memory leak of new allocator --- src/interpreter/objectpool.c | 1 + src/public/stack_ops.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/interpreter/objectpool.c b/src/interpreter/objectpool.c index 686ca5b7..fb9685ca 100644 --- a/src/interpreter/objectpool.c +++ b/src/interpreter/objectpool.c @@ -52,6 +52,7 @@ static int PoolArena__sweep_dealloc(PoolArena* self) { } else { if(!obj->gc_marked) { // not marked, need to free + PyObject__dtor(obj); obj->type = 0; freed++; self->unused[self->unused_length] = i; diff --git a/src/public/stack_ops.c b/src/public/stack_ops.c index ff84bc48..c352ddb5 100644 --- a/src/public/stack_ops.c +++ b/src/public/stack_ops.c @@ -49,7 +49,6 @@ bool py_deldict(py_Ref self, py_Name name) { assert(self && self->is_ptr); if(!py_ismagicname(name) || self->type != tp_type) { return NameDict__del(PyObject__dict(self->_obj), name); - } else { py_Type* ud = py_touserdata(self); py_newnil(py_tpgetmagic(*ud, name));