コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }