Skip to content

Commit fd6223a

Browse files
RefCountedObjectImpl: fixed issue when file is compiled with different DEBUG settings
1 parent 815f08a commit fd6223a

File tree

1 file changed

+8
-12
lines changed

1 file changed

+8
-12
lines changed

Common/interface/RefCountedObjectImpl.hpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -218,11 +218,6 @@ class RefCountersImpl final : public IReferenceCounters
218218

219219
RefCountersImpl() noexcept
220220
{
221-
m_lNumStrongReferences = 0;
222-
m_lNumWeakReferences = 0;
223-
#ifdef DILIGENT_DEBUG
224-
memset(m_ObjectWrapperBuffer, 0, sizeof(m_ObjectWrapperBuffer));
225-
#endif
226221
}
227222

228223
class ObjectWrapperBase
@@ -392,11 +387,9 @@ class RefCountersImpl final : public IReferenceCounters
392387
// So we copy the object wrapper and destroy the object after unlocking the
393388
// reference counters
394389
size_t ObjectWrapperBufferCopy[ObjectWrapperBufferSize];
395-
for (size_t i = 0; i < ObjectWrapperBufferSize; ++i)
396-
ObjectWrapperBufferCopy[i] = m_ObjectWrapperBuffer[i];
397-
#ifdef DILIGENT_DEBUG
390+
memcpy(ObjectWrapperBufferCopy, m_ObjectWrapperBuffer, sizeof(m_ObjectWrapperBuffer));
398391
memset(m_ObjectWrapperBuffer, 0, sizeof(m_ObjectWrapperBuffer));
399-
#endif
392+
400393
auto* pWrapper = reinterpret_cast<ObjectWrapperBase*>(ObjectWrapperBufferCopy);
401394

402395
// In a multithreaded environment, reference counters object may
@@ -480,10 +473,13 @@ class RefCountersImpl final : public IReferenceCounters
480473
// which does have virtual destructor.
481474
static constexpr size_t ObjectWrapperBufferSize = sizeof(ObjectWrapper<IObjectStub, IMemoryAllocator>) / sizeof(size_t);
482475

483-
size_t m_ObjectWrapperBuffer[ObjectWrapperBufferSize];
484-
Atomics::AtomicLong m_lNumStrongReferences;
485-
Atomics::AtomicLong m_lNumWeakReferences;
476+
size_t m_ObjectWrapperBuffer[ObjectWrapperBufferSize]{};
477+
478+
Atomics::AtomicLong m_lNumStrongReferences{0};
479+
Atomics::AtomicLong m_lNumWeakReferences{0};
480+
486481
ThreadingTools::LockFlag m_LockFlag;
482+
487483
enum class ObjectState : Int32
488484
{
489485
NotInitialized,

0 commit comments

Comments
 (0)