private void CopyToBuffer <T>(CopyToBufferHandler handler, T[] buffer) where T : unmanaged { unsafe { fixed(T *bufferPtr = buffer) { handler(mpPtr, (IntPtr)bufferPtr, buffer.Length).Assert(); } } GC.KeepAlive(this); }
private T[] CopyToBuffer <T>(CopyToBufferHandler handler, int bufferSize) where T : unmanaged { var buffer = new T[bufferSize]; unsafe { fixed(T *bufferPtr = buffer) { handler(mpPtr, (IntPtr)bufferPtr, bufferSize).Assert(); } } GC.KeepAlive(this); return(buffer); }