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));