diff --git a/Generals/Code/GameEngine/Source/Common/System/GameMemory.cpp b/Generals/Code/GameEngine/Source/Common/System/GameMemory.cpp index f760d6f470f..405cf803643 100644 --- a/Generals/Code/GameEngine/Source/Common/System/GameMemory.cpp +++ b/Generals/Code/GameEngine/Source/Common/System/GameMemory.cpp @@ -1451,7 +1451,7 @@ BlockCheckpointInfo *Checkpointable::debugAddCheckpointInfo( { #ifdef MEMORYPOOL_STACKTRACE void **stacktrace = bi->getStacktraceInfo(); - if (theStackTraceDepth > 0 && !TheGlobalData || TheGlobalData->m_checkForLeaks) + if (theStackTraceDepth > 0 && (!TheGlobalData || TheGlobalData->m_checkForLeaks)) { memset(stacktrace, 0, MEMORYPOOL_STACKTRACE_SIZE_BYTES); ::FillStackAddresses(stacktrace, min(MEMORYPOOL_STACKTRACE_SIZE, theStackTraceDepth), MEMORYPOOL_STACKTRACE_SKIP_SIZE); @@ -1584,7 +1584,8 @@ MemoryPoolBlob* MemoryPool::createBlob(Int allocationCount) blob->addBlobToList(&m_firstBlob, &m_lastBlob); DEBUG_ASSERTCRASH(m_firstBlobWithFreeBlocks == NULL, ("DO NOT IGNORE. Please call John McD - x36872 (m_firstBlobWithFreeBlocks != NULL)")); - m_firstBlobWithFreeBlocks = blob; + if (m_firstBlobWithFreeBlocks == NULL) + m_firstBlobWithFreeBlocks = blob; // bookkeeping m_totalBlocksInPool += allocationCount; diff --git a/GeneralsMD/Code/GameEngine/Source/Common/System/GameMemory.cpp b/GeneralsMD/Code/GameEngine/Source/Common/System/GameMemory.cpp index 2b7d51f52bc..7cdbe137fe3 100644 --- a/GeneralsMD/Code/GameEngine/Source/Common/System/GameMemory.cpp +++ b/GeneralsMD/Code/GameEngine/Source/Common/System/GameMemory.cpp @@ -1432,7 +1432,7 @@ BlockCheckpointInfo *Checkpointable::debugAddCheckpointInfo( { #ifdef MEMORYPOOL_STACKTRACE void **stacktrace = bi->getStacktraceInfo(); - if (theStackTraceDepth > 0 && !TheGlobalData || TheGlobalData->m_checkForLeaks) + if (theStackTraceDepth > 0 && (!TheGlobalData || TheGlobalData->m_checkForLeaks)) { memset(stacktrace, 0, MEMORYPOOL_STACKTRACE_SIZE_BYTES); ::FillStackAddresses(stacktrace, min(MEMORYPOOL_STACKTRACE_SIZE, theStackTraceDepth), MEMORYPOOL_STACKTRACE_SKIP_SIZE); @@ -1565,7 +1565,8 @@ MemoryPoolBlob* MemoryPool::createBlob(Int allocationCount) blob->addBlobToList(&m_firstBlob, &m_lastBlob); DEBUG_ASSERTCRASH(m_firstBlobWithFreeBlocks == nullptr, ("DO NOT IGNORE. Please call John McD - x36872 (m_firstBlobWithFreeBlocks != nullptr)")); - m_firstBlobWithFreeBlocks = blob; + if (m_firstBlobWithFreeBlocks == nullptr) + m_firstBlobWithFreeBlocks = blob; // bookkeeping m_totalBlocksInPool += allocationCount;