unsafe public void LocalAllocatorAlloc() { byte *buffer = localAllocator.Allocate <byte>(Bytes); for (int i = 0; i < Bytes; i++) { unchecked { buffer[i] = (byte)i; } } localAllocator.Free(buffer); }
public void DefaultLocalAllocatorTest() { DefaultLocalAllocator allocator = DefaultLocalAllocator.Instance; Assert.AreSame(allocator, Allocator.GetAllocatorByID(allocator.ID)); Assert.IsTrue(Allocator.IsCached(allocator)); int *p = allocator.Allocate <int>(4); for (int i = 0; i < 4; i++) { p[i] = i + 1; } Assert.AreEqual(4 * 4, allocator.SizeOf(p)); Assert.AreEqual(1, p[0]); Assert.AreEqual(2, p[1]); Assert.AreEqual(3, p[2]); Assert.AreEqual(4, p[3]); p = allocator.Reallocate(p, 6); Assert.AreEqual(6 * 4, allocator.SizeOf(p)); Assert.AreEqual(1, p[0]); Assert.AreEqual(2, p[1]); Assert.AreEqual(3, p[2]); Assert.AreEqual(4, p[3]); Assert.AreEqual(0, p[4]); Assert.AreEqual(0, p[5]); allocator.Free(p); }