Some sanity checks on Direct3DRMObjectBaseImpl::Release() (#285)

This commit is contained in:
Anders Jenbo 2025-06-12 00:18:56 +02:00 committed by GitHub
parent 7732a3ccfd
commit d06972cfb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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();