diff --git a/src/coreclr/md/runtime/metamodel.cpp b/src/coreclr/md/runtime/metamodel.cpp index 14654f7657b95..3cbc82b6a50a7 100644 --- a/src/coreclr/md/runtime/metamodel.cpp +++ b/src/coreclr/md/runtime/metamodel.cpp @@ -717,13 +717,17 @@ CMiniMdBase::InitColsForTable( // should we write the data into the structure { const CMiniTableDef *pTemplate; // Template table definition. - CMiniColDef pCols[9]; // The col defs to init. + // Mark the array of columns as not allocated (not ALLOCATED_MEMORY_MARKER) for SetNewColumnDefinition + const uint8_t MAX_COL_COUNT = 9; + BYTE colData[1 + sizeof(CMiniColDef) * MAX_COL_COUNT]; + colData[0] = 0; + CMiniColDef* pCols = BYTEARRAY_TO_COLDES(colData); BYTE iOffset; // Running size of a record. BYTE iSize; // Size of a field. HRESULT hr = S_OK; _ASSERTE((bExtra == 0) || (bExtra == 1)); - _ASSERTE(ARRAY_SIZE(pCols) >= pTable->m_cCols); + _ASSERTE(MAX_COL_COUNT >= pTable->m_cCols); bExtra = 0;//@FUTURE: save in schema header. until then use 0.