Some sanity checks on Direct3DRMObjectBaseImpl::Release()

This commit is contained in:
Anders Jenbo 2025-06-12 00:10:10 +02:00
parent 7732a3ccfd
commit 59543188f5

View File

@ -9,10 +9,11 @@ template <typename T>
struct Direct3DRMObjectBaseImpl : public T { struct Direct3DRMObjectBaseImpl : public T {
ULONG Release() override ULONG Release() override
{ {
if (IUnknown::m_refCount == 1) { if (T::m_refCount == 1) {
for (auto it = m_callbacks.cbegin(); it != m_callbacks.cend(); it++) { for (auto it = m_callbacks.cbegin(); it != m_callbacks.cend(); it++) {
it->first(this, it->second); it->first(this, it->second);
} }
m_callbacks.clear();
} }
SDL_free(m_name); SDL_free(m_name);
return this->T::Release(); return this->T::Release();