diff --git a/src/coreclr/vm/frozenobjectheap.cpp b/src/coreclr/vm/frozenobjectheap.cpp index 41af231816a645..8f11f3c8c74d64 100644 --- a/src/coreclr/vm/frozenobjectheap.cpp +++ b/src/coreclr/vm/frozenobjectheap.cpp @@ -180,10 +180,12 @@ void FrozenObjectSegment::RegisterOrUpdate(uint8_t* current, size_t sizeCommited segment_info si; si.pvMem = m_pStart; si.ibFirstObject = sizeof(ObjHeader); - si.ibAllocated = (size_t)current; + si.ibAllocated = (size_t)current - (size_t)si.pvMem; si.ibCommit = sizeCommited; si.ibReserved = m_Size; + assert((size_t)current >= (size_t)si.pvMem); + // NOTE: RegisterFrozenSegment may take a GC lock inside. m_SegmentHandle = GCHeapUtilities::GetGCHeap()->RegisterFrozenSegment(&si); if (m_SegmentHandle == nullptr)