Fix decoration lifecycle issues

This commit is contained in:
Daniel Imms
2022-03-21 16:57:49 -07:00
parent b39477d81a
commit 43a014e8c1
+8 -1
View File
@@ -32,7 +32,10 @@ export class DecorationService extends Disposable implements IDecorationService
if (decoration) {
decoration.onDispose(() => {
if (decoration) {
this._decorations.splice(this._decorations.indexOf(decoration), 1);
const index = this._decorations.indexOf(decoration);
if (index >= 0) {
this._decorations.splice(this._decorations.indexOf(decoration), 1);
}
}
});
this._decorations.push(decoration);
@@ -70,6 +73,10 @@ class Decoration extends Disposable implements IInternalDecoration {
}
}
public override dispose(): void {
if (this._isDisposed) {
return;
}
this._isDisposed = true;
this._onDispose.fire();
super.dispose();
}