@@ -899,16 +899,17 @@ void MemoryPoolSingleBlock::initBlock(Int logicalSize, MemoryPoolBlob *owningBlo
899899#ifdef MEMORYPOOL_CHECKPOINTING
900900 m_checkpointInfo = NULL ;
901901#endif
902- #ifdef MEMORYPOOL_BOUNDINGWALL
903- m_wallPattern = theBoundingWallPattern++;
904- debugFillInWalls ();
905- #endif
906902
907903 m_nextBlock = NULL ;
908904#ifdef MPSB_DLINK
909905 m_prevBlock = NULL ;
910906#endif
911907 m_owningBlob = owningBlob; // could be NULL
908+
909+ #ifdef MEMORYPOOL_BOUNDINGWALL
910+ m_wallPattern = theBoundingWallPattern++;
911+ debugFillInWalls ();
912+ #endif
912913}
913914
914915// -----------------------------------------------------------------------------
@@ -1056,9 +1057,13 @@ void MemoryPoolSingleBlock::debugVerifyBlock()
10561057 DEBUG_ASSERTCRASH (m_debugLiteralTagString != NULL , (" bad tagstring" ));
10571058 // / @todo Put this check back in after the AI memory usage is under control (MSB)
10581059 // DEBUG_ASSERTCRASH(m_logicalSize>0 && m_logicalSize < 0x00ffffff, ("unlikely value for m_logicalSize"));
1059- DEBUG_ASSERTCRASH (!m_nextBlock || m_nextBlock->m_owningBlob == m_owningBlob, (" owning blob mismatch..." ));
1060+ DEBUG_ASSERTCRASH (m_nextBlock == NULL
1061+ || memcmp (&m_nextBlock->m_owningBlob , &s_initFillerValue, sizeof (s_initFillerValue)) == 0
1062+ || m_nextBlock->m_owningBlob == m_owningBlob, (" owning blob mismatch..." ));
10601063#ifdef MPSB_DLINK
1061- DEBUG_ASSERTCRASH (!m_prevBlock || m_prevBlock->m_owningBlob == m_owningBlob, (" owning blob mismatch..." ));
1064+ DEBUG_ASSERTCRASH (m_prevBlock == NULL
1065+ || memcmp (&m_prevBlock->m_owningBlob , &s_initFillerValue, sizeof (s_initFillerValue)) == 0
1066+ || m_prevBlock->m_owningBlob == m_owningBlob, (" owning blob mismatch..." ));
10621067#endif
10631068 debugCheckUnderrun ();
10641069 debugCheckOverrun ();
0 commit comments