22 lines
629 B
C#
22 lines
629 B
C#
using UnmanagedMMU.Allocators;
|
|
|
|
namespace UnmanagedMMU.Handles
|
|
{
|
|
internal sealed unsafe class PersistentMemoryHandle<T> : MemoryHandleBase<T> 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
|
|
}
|
|
}
|
|
}
|
|
}
|