Allocator.cs
1 using System; 2 3 namespace ARMeilleure.Common 4 { 5 unsafe abstract class Allocator : IDisposable 6 { 7 public T* Allocate<T>(ulong count = 1) where T : unmanaged 8 { 9 return (T*)Allocate(count * (uint)sizeof(T)); 10 } 11 12 public abstract void* Allocate(ulong size); 13 14 public abstract void Free(void* block); 15 16 protected virtual void Dispose(bool disposing) { } 17 18 public void Dispose() 19 { 20 Dispose(true); 21 GC.SuppressFinalize(this); 22 } 23 } 24 }