public void Allocate(int sz) { if (buffer != null && bufferLength >= sz) { return; } T[] newList = null; newList = HeapPoolEx.NewArrayToLarger <T>(sz); if (buffer != null && size > 0) { buffer.CopyTo(newList, 0); } T[] oldBuffer = buffer; if (oldBuffer != null) { HeapPoolEx.DeleteArray <T>(ref oldBuffer); } buffer = newList; bufferLength = buffer.Length; }
/// <summary> /// Clear the array by resetting its size to zero. Note that the memory is not actually released. /// </summary> public void Clear() { size = 0; if (buffer != null) { HeapPoolEx.DeleteArray <T>(ref buffer); buffer = null; } bufferLength = 0; }