Update d3drmobject_impl.h

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

View File

@ -7,6 +7,11 @@
template <typename T> template <typename T>
struct Direct3DRMObjectBaseImpl : public T { struct Direct3DRMObjectBaseImpl : public T {
Direct3DRMObjectBaseImpl(const Direct3DRMObjectBaseImpl& other) : T(other)
{
// We should not call the callback twice
m_callbacks.clear();
}
ULONG Release() override ULONG Release() override
{ {
if (T::m_refCount == 1) { if (T::m_refCount == 1) {
@ -64,10 +69,8 @@ struct Direct3DRMObjectBaseImpl : public T {
return D3DRM_OK; return D3DRM_OK;
} }
protected:
std::vector<std::pair<D3DRMOBJECTCALLBACK, void*>> m_callbacks;
private: private:
LPD3DRM_APPDATA m_appData = nullptr; LPD3DRM_APPDATA m_appData = nullptr;
std::vector<std::pair<D3DRMOBJECTCALLBACK, void*>> m_callbacks;
char* m_name = nullptr; char* m_name = nullptr;
}; };