void AddChunkToArray(object[] chunks, object newchunk)
{
Debug.Assert(chunks != null);
Debug.Assert(_chunksCount > 0);
if (_chunksCount >= chunks.Length)
{
Debug.Assert(chunks.Length != 0);
var newarr = new object[chunks.Length * 2];
Array.Copy(chunks, newarr, chunks.Length);
_chunks = chunks = newarr;
// TODO: when chunks.Length ~ N => compact
}
//
chunks[_chunksCount++] = newchunk;
}