private InternalFree ( |
||
handle | ||
return | void |
internal static extern void InternalFree(IntPtr handle);
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public void Free() { IntPtr num = this.m_handle; if (!(num != IntPtr.Zero) || !(Interlocked.CompareExchange(ref this.m_handle, IntPtr.Zero, num) == num)) { throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_HandleIsNotInitialized")); } if (GCHandle.s_probeIsActive) { GCHandle.s_cookieTable.RemoveHandleIfPresent(num); } GCHandle.InternalFree((IntPtr)((int)num & -2)); }