public CMiniTableDef Clone() { var columnClone = new CMiniColDef[m_pColDefs.Length]; for (int i = 0; i < m_pColDefs.Length; i++) { columnClone[i] = m_pColDefs[i].Clone(); } return(new CMiniTableDef(columnClone, m_iKey, m_cbRec, m_RecordType)); }
private void InitColsForTable(uint tableIdx) { int prevSize = 0; CMiniColDef[] columns = m_TableDefs[tableIdx].m_pColDefs; int nColumns = columns.Length; // update sizes + offsets for (int i = 0; i < nColumns; i++) { int colType = columns[i].m_Type; int fieldSize = ColumnTypeSize(colType); columns[i] = new CMiniColDef((byte)colType, (byte)prevSize, (byte)fieldSize); // align to 2 byte boundary fieldSize += (fieldSize & 1); prevSize += fieldSize; } byte key = m_TableDefs[tableIdx].m_iKey; if (key >= nColumns) { key = unchecked ((byte)(~0u)); } // update key and total size m_TableDefs[tableIdx] = new CMiniTableDef( m_TableDefs[tableIdx].m_pColDefs, key, prevSize, m_TableDefs[tableIdx].m_RecordType ); }