internal int NewRecordBase()
{
int record;
if (_freeRecordList.Count != 0)
{
record = _freeRecordList[_freeRecordList.Count - 1];
_freeRecordList.RemoveAt(_freeRecordList.Count - 1);
}
else
{
if (_lastFreeRecord >= _recordCapacity)
{
GrowRecordCapacity();
}
record = _lastFreeRecord;
_lastFreeRecord++;
}
Debug.Assert(record >= 0 && record < _recordCapacity, "NewRecord: Invalid record");
return record;
}