Skip to content

Commit 76ec9e2

Browse files
committed
Make DisposableObject a concrete class
1 parent 801df7b commit 76ec9e2

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

extensions/ql-vscode/src/common/disposable-object.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,16 @@ export type DisposeHandler = (disposable: Disposable) => void;
99
/**
1010
* Base class to make it easier to implement a `Disposable` that owns other disposable object.
1111
*/
12-
export abstract class DisposableObject implements Disposable {
12+
export class DisposableObject implements Disposable {
1313
private disposables: Disposable[] = [];
1414
private tracked?: Set<Disposable> = undefined;
1515

16+
constructor(...dispoables: Disposable[]) {
17+
for (const d of dispoables) {
18+
this.push(d);
19+
}
20+
}
21+
1622
/**
1723
* Adds `obj` to a list of objects to dispose when `this` is disposed. Objects added by `push` are
1824
* disposed in reverse order of being added.
@@ -82,12 +88,3 @@ export abstract class DisposableObject implements Disposable {
8288
}
8389
}
8490
}
85-
86-
export class BasicDisposableObject extends DisposableObject {
87-
constructor(...dispoables: Disposable[]) {
88-
super();
89-
for (const d of dispoables) {
90-
this.push(d);
91-
}
92-
}
93-
}

extensions/ql-vscode/src/common/vscode/multi-cancellation-token.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { CancellationToken, Disposable } from "vscode";
2-
import { BasicDisposableObject } from "../disposable-object";
2+
import { DisposableObject } from "../disposable-object";
33

44
/**
55
* A cancellation token that cancels when any of its constituent
@@ -17,9 +17,8 @@ export class MultiCancellationToken implements CancellationToken {
1717
}
1818

1919
onCancellationRequested<T>(listener: (e: T) => any): Disposable {
20-
const disposables = this.tokens.map((t) =>
21-
t.onCancellationRequested(listener),
20+
return new DisposableObject(
21+
...this.tokens.map((t) => t.onCancellationRequested(listener)),
2222
);
23-
return new BasicDisposableObject(...disposables);
2423
}
2524
}

0 commit comments

Comments
 (0)