public DiffMergeInstance(IAnkhServiceProvider context, IVsWindowFrame frame, UnregisterHandler unRegisterhandler, QueryHandler queryHandler, int mergeCookie) : this(context, frame) { _isMerge = true; _unregister = unRegisterhandler; _query = queryHandler; _mergeCookie = mergeCookie; _mergeHooked = true; }
protected override void Dispose(bool disposing) { ThreadHelper.ThrowIfNotOnUIThread(); try { if (disposing) { if (_mergeHooked) { _mergeHooked = false; UnregisterHandler unregister = _unregister; IAnkhCommandService cs = GetService <IAnkhCommandService>(); if (cs != null) { cs.PostIdleAction(delegate { unregister(_mergeCookie); }); } } if (_frameHooked) { _frameHooked = false; _frame2.Unadvise(_frameCookie); } } // Unbreak possible circular dependency _frame = null; _frame2 = null; _unregister = null; } finally { base.Dispose(disposing); } }