diff --git a/miniwin/src/internal/d3drmobject_impl.h b/miniwin/src/internal/d3drmobject_impl.h index a4a7cd1e..16fcd8bf 100644 --- a/miniwin/src/internal/d3drmobject_impl.h +++ b/miniwin/src/internal/d3drmobject_impl.h @@ -9,10 +9,11 @@ template struct Direct3DRMObjectBaseImpl : public T { ULONG Release() override { - if (IUnknown::m_refCount == 1) { + if (T::m_refCount == 1) { for (auto it = m_callbacks.cbegin(); it != m_callbacks.cend(); it++) { it->first(this, it->second); } + m_callbacks.clear(); } SDL_free(m_name); return this->T::Release();