diff --git a/include/pocketpy/obj.h b/include/pocketpy/obj.h index 86f41e60..36d5900a 100644 --- a/include/pocketpy/obj.h +++ b/include/pocketpy/obj.h @@ -111,7 +111,11 @@ struct PyObject{ PyObject(Type type) : gc_enabled(true), gc_marked(false), type(type), _attr(nullptr) {} - virtual ~PyObject(); + virtual ~PyObject(){ + if(_attr == nullptr) return; + _attr->~NameDict(); + pool128_dealloc(_attr); + } void _enable_instance_dict() { _attr = new(pool128_alloc()) NameDict(); diff --git a/src/obj.cpp b/src/obj.cpp index ef9ce681..0e1ab193 100644 --- a/src/obj.cpp +++ b/src/obj.cpp @@ -1,12 +1,6 @@ #include "pocketpy/obj.h" namespace pkpy{ - PyObject::~PyObject() { - if(_attr == nullptr) return; - _attr->~NameDict(); - pool128_dealloc(_attr); - } - bool Bytes::operator==(const Bytes& rhs) const{ if(_size != rhs._size) return false; for(int i=0; i<_size; i++) if(_data[i] != rhs._data[i]) return false;