فهرست منبع

fix memory leak of new allocator

blueloveTH 1 سال پیش
والد
کامیت
ba25fd4710
2فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  1. 1 0
      src/interpreter/objectpool.c
  2. 0 1
      src/public/stack_ops.c

+ 1 - 0
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;

+ 0 - 1
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));