using UnmanagedMMU.Allocators; namespace UnmanagedMMU.Handles { internal sealed unsafe class PersistentMemoryHandle : MemoryHandleBase where T : unmanaged { public PersistentMemoryHandle(void* ptr, nuint byteLength, nuint alignment, IUnmanagedMemoryOwner owner) : base(ptr, byteLength, alignment, owner) { } protected override void OnDispose() { if (Pointer != null) { GetOwner().Free(this); // No need to set _ptr = null here; MemoryHandleBase._disposed flag prevents double-free } } } }