diff --git a/src/vs/base/common/lifecycle.ts b/src/vs/base/common/lifecycle.ts index 55687fc6934..de7b5d15e6e 100644 --- a/src/vs/base/common/lifecycle.ts +++ b/src/vs/base/common/lifecycle.ts @@ -446,11 +446,17 @@ export class DisposableStore implements IDisposable { o.dispose(); } + /** + * Deletes the value from the store, but does not dispose it. + */ public deleteAndLeak(o: T): void { if (!o) { return; } - this._toDispose.delete(o); + if (this._toDispose.has(o)) { + this._toDispose.delete(o); + setParentOfDisposable(o, null); + } } }