internal void FreeRecord(ref int record)
{
Debug.Assert(-1 <= record && record < _recordCapacity, "invalid record");
// Debug.Assert(record < lastFreeRecord, "Attempt to Free() <outofbounds> record");
if (-1 != record)
{
this[record] = null;
int count = _table._columnCollection.Count;
for (int i = 0; i < count; ++i)
{
_table._columnCollection[i].FreeRecord(record);
}
// if freeing the last record, recycle it
if (_lastFreeRecord == record + 1)
{
_lastFreeRecord--;
}
else if (record < _lastFreeRecord)
{
_freeRecordList.Add(record);
}
record = -1;
}
}