/// <summary> /// Release all the unmanaged memory associated with this object. /// </summary> protected override void DisposeObject() { if (_needDispose && _ptr != IntPtr.Zero) { UMatInvoke.cvUMatRelease(ref _ptr); } if (_oclMatAllocator != IntPtr.Zero) { MatDataAllocatorInvoke.cvMatAllocatorRelease(ref _oclMatAllocator); } base.DisposeObject(); }
/// <summary> /// Release resource associated with this object /// </summary> protected override void DisposeObject() { if (_memoryAllocator != IntPtr.Zero) { MatDataAllocatorInvoke.cvMatAllocatorRelease(ref _memoryAllocator); } if (_allocateDataActionPtr != IntPtr.Zero) { GCHandle.FromIntPtr(_allocateDataActionPtr).Free(); _allocateDataActionPtr = IntPtr.Zero; } if (_freeDataActionPtr != IntPtr.Zero) { GCHandle.FromIntPtr(_freeDataActionPtr).Free(); _freeDataActionPtr = IntPtr.Zero; } FreeData(); }