| 123456789101112131415161718192021222324252627 |
- using System;
- using System.Runtime.InteropServices;
- namespace ARMeilleure.Common
- {
- unsafe sealed class NativeAllocator : Allocator
- {
- public static NativeAllocator Instance { get; } = new();
- public override void* Allocate(ulong size)
- {
- void* result = (void*)Marshal.AllocHGlobal((IntPtr)size);
- if (result == null)
- {
- throw new OutOfMemoryException();
- }
- return result;
- }
- public override void Free(void* block)
- {
- Marshal.FreeHGlobal((IntPtr)block);
- }
- }
- }
|