Skip to content

Commit f019353

Browse files
authored
Copilot-aided disposable fixes (microsoft#295502)
* Copilot-aided disposable fixes * Undo this, leave it for later * Undo making some classes disposable when those classes weren't properly tracked
1 parent 0235281 commit f019353

41 files changed

Lines changed: 111 additions & 76 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/vs/base/browser/ui/grid/gridview.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -738,6 +738,7 @@ class BranchNode implements ISplitView<ILayoutContext>, IDisposable {
738738
}
739739

740740
this._onDidChange.dispose();
741+
this._onDidScroll.dispose();
741742
this._onDidSashReset.dispose();
742743
this._onDidVisibilityChange.dispose();
743744

@@ -933,6 +934,7 @@ class LeafNode implements ISplitView<ILayoutContext>, IDisposable {
933934
}
934935

935936
dispose(): void {
937+
this._onDidSetLinkedNode.dispose();
936938
this.disposables.dispose();
937939
}
938940
}
@@ -1832,6 +1834,7 @@ export class GridView implements IDisposable {
18321834
}
18331835

18341836
dispose(): void {
1837+
this._onDidChangeViewMaximized.dispose();
18351838
this.onDidSashResetRelay.dispose();
18361839
this.root.dispose();
18371840
this.element.remove();

src/vs/base/browser/ui/list/listView.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ export class ListView<T> implements IListView<T> {
332332

333333
private readonly disposables: DisposableStore = new DisposableStore();
334334

335-
private readonly _onDidChangeContentHeight = new Emitter<number>();
336-
private readonly _onDidChangeContentWidth = new Emitter<number>();
335+
private readonly _onDidChangeContentHeight = this.disposables.add(new Emitter<number>());
336+
private readonly _onDidChangeContentWidth = this.disposables.add(new Emitter<number>());
337337
readonly onDidChangeContentHeight: Event<number> = Event.latch(this._onDidChangeContentHeight.event, undefined, this.disposables);
338338
readonly onDidChangeContentWidth: Event<number> = Event.latch(this._onDidChangeContentWidth.event, undefined, this.disposables);
339339
get contentHeight(): number { return this.rangeMap.size; }

src/vs/base/browser/ui/table/tableWidget.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ class ColumnHeader<TRow, TCell> extends Disposable implements IView {
126126
get maximumSize() { return this.column.maximumWidth ?? Number.POSITIVE_INFINITY; }
127127
get onDidChange() { return this.column.onDidChangeWidthConstraints ?? Event.None; }
128128

129-
private _onDidLayout = new Emitter<[number, number]>();
129+
private _onDidLayout = this._register(new Emitter<[number, number]>());
130130
readonly onDidLayout = this._onDidLayout.event;
131131

132132
constructor(readonly column: ITableColumn<TRow, TCell>, private index: number) {

src/vs/base/browser/ui/tree/abstractTree.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -832,7 +832,7 @@ class FindWidget<T, TFilterData> extends Disposable {
832832
private readonly actionbar: ActionBar;
833833
private readonly toggles: TreeFindToggle[] = [];
834834

835-
readonly _onDidDisable = new Emitter<void>();
835+
readonly _onDidDisable = this._register(new Emitter<void>());
836836
readonly onDidDisable = this._onDidDisable.event;
837837
readonly onDidChangeValue: Event<string>;
838838
readonly onDidToggleChange: Event<ITreeFindToggleChangeEvent>;
@@ -1901,10 +1901,10 @@ class StickyScrollFocus<T, TFilterData, TRef> extends Disposable {
19011901
private elements: HTMLElement[] = [];
19021902
private state: StickyScrollState<T, TFilterData, TRef> | undefined;
19031903

1904-
private _onDidChangeHasFocus = new Emitter<boolean>();
1904+
private _onDidChangeHasFocus = this._register(new Emitter<boolean>());
19051905
readonly onDidChangeHasFocus = this._onDidChangeHasFocus.event;
19061906

1907-
private _onContextMenu = new Emitter<ITreeContextMenuEvent<T>>();
1907+
private _onContextMenu = this._register(new Emitter<ITreeContextMenuEvent<T>>());
19081908
readonly onContextMenu: Event<ITreeContextMenuEvent<T>> = this._onContextMenu.event;
19091909

19101910
private _domHasFocus: boolean = false;

src/vs/base/browser/ui/tree/asyncDataTree.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1387,6 +1387,8 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
13871387
}
13881388

13891389
dispose(): void {
1390+
this._onDidRender.dispose();
1391+
this._onDidChangeNodeSlowState.dispose();
13901392
this.disposables.dispose();
13911393
this.tree.dispose();
13921394
}

src/vs/base/parts/ipc/common/ipc.net.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -544,10 +544,10 @@ export class Protocol extends Disposable implements IMessagePassingProtocol {
544544
private _socketWriter: ProtocolWriter;
545545
private _socketReader: ProtocolReader;
546546

547-
private readonly _onMessage = new Emitter<VSBuffer>();
547+
private readonly _onMessage = this._register(new Emitter<VSBuffer>());
548548
readonly onMessage: Event<VSBuffer> = this._onMessage.event;
549549

550-
private readonly _onDidDispose = new Emitter<void>();
550+
private readonly _onDidDispose = this._register(new Emitter<void>());
551551
readonly onDidDispose: Event<void> = this._onDidDispose.event;
552552

553553
constructor(socket: ISocket) {

src/vs/base/parts/ipc/common/ipc.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,7 @@ export class ChannelClient implements IChannelClient, IDisposable {
780780
}
781781
dispose(this.activeRequests.values());
782782
this.activeRequests.clear();
783+
this._onDidInitialize.dispose();
783784
}
784785
}
785786

src/vs/editor/contrib/colorPicker/browser/colorPickerModel.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55

66
import { Color } from '../../../../base/common/color.js';
77
import { Emitter, Event } from '../../../../base/common/event.js';
8+
import { Disposable } from '../../../../base/common/lifecycle.js';
89
import { IColorPresentation } from '../../../common/languages.js';
910

10-
export class ColorPickerModel {
11+
export class ColorPickerModel extends Disposable {
1112

1213
readonly originalColor: Color;
1314
private _color: Color;
@@ -41,16 +42,17 @@ export class ColorPickerModel {
4142
this._onDidChangePresentation.fire(this.presentation);
4243
}
4344

44-
private readonly _onColorFlushed = new Emitter<Color>();
45+
private readonly _onColorFlushed = this._register(new Emitter<Color>());
4546
readonly onColorFlushed: Event<Color> = this._onColorFlushed.event;
4647

47-
private readonly _onDidChangeColor = new Emitter<Color>();
48+
private readonly _onDidChangeColor = this._register(new Emitter<Color>());
4849
readonly onDidChangeColor: Event<Color> = this._onDidChangeColor.event;
4950

50-
private readonly _onDidChangePresentation = new Emitter<IColorPresentation>();
51+
private readonly _onDidChangePresentation = this._register(new Emitter<IColorPresentation>());
5152
readonly onDidChangePresentation: Event<IColorPresentation> = this._onDidChangePresentation.event;
5253

5354
constructor(color: Color, availableColorPresentations: IColorPresentation[], private presentationIndex: number) {
55+
super();
5456
this.originalColor = color;
5557
this._color = color;
5658
this._colorPresentations = availableColorPresentations;

src/vs/platform/debug/common/extensionHostDebugIpc.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import { Disposable } from '../../../base/common/lifecycle.js';
88
import { IChannel, IServerChannel } from '../../../base/parts/ipc/common/ipc.js';
99
import { IAttachSessionEvent, ICloseSessionEvent, IExtensionHostDebugService, IOpenExtensionWindowResult, IReloadSessionEvent, ITerminateSessionEvent } from './extensionHostDebug.js';
1010

11-
export class ExtensionHostDebugBroadcastChannel<TContext> implements IServerChannel<TContext> {
11+
export class ExtensionHostDebugBroadcastChannel<TContext> extends Disposable implements IServerChannel<TContext> {
1212

1313
static readonly ChannelName = 'extensionhostdebugservice';
1414

15-
private readonly _onCloseEmitter = new Emitter<ICloseSessionEvent>();
16-
private readonly _onReloadEmitter = new Emitter<IReloadSessionEvent>();
17-
private readonly _onTerminateEmitter = new Emitter<ITerminateSessionEvent>();
18-
private readonly _onAttachEmitter = new Emitter<IAttachSessionEvent>();
15+
private readonly _onCloseEmitter = this._register(new Emitter<ICloseSessionEvent>());
16+
private readonly _onReloadEmitter = this._register(new Emitter<IReloadSessionEvent>());
17+
private readonly _onTerminateEmitter = this._register(new Emitter<ITerminateSessionEvent>());
18+
private readonly _onAttachEmitter = this._register(new Emitter<IAttachSessionEvent>());
1919

2020
call(ctx: TContext, command: string, arg?: any): Promise<any> {
2121
switch (command) {

src/vs/platform/tunnel/common/tunnel.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ export class DisposableTunnel {
216216

217217
dispose(): Promise<void> {
218218
this._onDispose.fire();
219+
this._onDispose.dispose();
219220
return this._dispose();
220221
}
221222
}

0 commit comments

Comments
 (0)