diff --git a/src/hx/atomic/AtomicInt.cpp b/src/hx/atomic/AtomicInt.cpp index 99ad3cb7e..2c5162060 100644 --- a/src/hx/atomic/AtomicInt.cpp +++ b/src/hx/atomic/AtomicInt.cpp @@ -13,6 +13,13 @@ struct hx::atomic::AtomicInt_obj::Impl hx::atomic::AtomicInt_obj::AtomicInt_obj(int val) : impl(new Impl()) { impl->atomic.store(val); + + GCSetFinalizer(this, [](hx::Object* obj) + { + auto a = reinterpret_cast(obj); + + delete a->impl; + }); } int hx::atomic::AtomicInt_obj::fetchAdd(int val) diff --git a/src/hx/atomic/AtomicObject.cpp b/src/hx/atomic/AtomicObject.cpp index d7babd200..d489f0a44 100644 --- a/src/hx/atomic/AtomicObject.cpp +++ b/src/hx/atomic/AtomicObject.cpp @@ -15,6 +15,13 @@ hx::atomic::AtomicObject_obj::AtomicObject_obj(Dynamic val) : impl(new Impl()) impl->atomic.store(val.mPtr); HX_OBJ_WB_NEW_MARKED_OBJECT(this); + + GCSetFinalizer(this, [](hx::Object* obj) + { + auto a = reinterpret_cast(obj); + + delete a->impl; + }); } void hx::atomic::AtomicObject_obj::__Mark(HX_MARK_PARAMS)