public BufferHandle Pin() { if (_owner != null) { return(_owner.Pin(_index)); } var handle = GCHandle.Alloc(_array, GCHandleType.Pinned); unsafe { var pointer = OwnedBuffer <T> .Add((void *)handle.AddrOfPinnedObject(), _index); return(new BufferHandle(null, pointer, handle)); } }
public BufferHandle Pin() => _owner.Pin(_index);