Skip to content

Commit 3d3f1ba

Browse files
committed
Fixing a few more dispoable cases
1 parent 8de04a7 commit 3d3f1ba

7 files changed

Lines changed: 25 additions & 26 deletions

File tree

src/vs/editor/browser/view/viewImpl.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export class View extends ViewEventHandler {
132132
this._setLayout();
133133

134134
// Pointer handler
135-
this.pointerHandler = new PointerHandler(this._context, viewController, this.createPointerHandlerHelper());
135+
this.pointerHandler = this._register(new PointerHandler(this._context, viewController, this.createPointerHandlerHelper()));
136136

137137
this._register(model.addEventListener((events: viewEvents.ViewEvent[]) => {
138138
this.eventDispatcher.emitMany(events);
@@ -342,8 +342,6 @@ export class View extends ViewEventHandler {
342342
this.eventDispatcher.removeEventHandler(this);
343343
this.outgoingEvents.dispose();
344344

345-
this.pointerHandler.dispose();
346-
347345
this.viewLines.dispose();
348346

349347
// Destroy view parts

src/vs/platform/log/common/log.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ export class ConsoleLogService extends AbstractLogService implements ILogService
186186
export class MultiplexLogService extends AbstractLogService implements ILogService {
187187
_serviceBrand: any;
188188

189-
constructor(private logServices: ILogService[]) {
189+
constructor(private readonly logServices: ReadonlyArray<ILogService>) {
190190
super();
191191
if (logServices.length) {
192192
this.setLevel(logServices[0].getLevel());

src/vs/workbench/contrib/comments/browser/commentsTreeViewer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import * as dom from 'vs/base/browser/dom';
77
import * as nls from 'vs/nls';
88
import { renderMarkdown } from 'vs/base/browser/htmlContentRenderer';
99
import { onUnexpectedError } from 'vs/base/common/errors';
10-
import { Disposable } from 'vs/base/common/lifecycle';
10+
import { IDisposable } from 'vs/base/common/lifecycle';
1111
import { URI } from 'vs/base/common/uri';
1212
import { IDataSource, IFilter, IRenderer as ITreeRenderer, ITree } from 'vs/base/parts/tree/browser/tree';
1313
import { IOpenerService } from 'vs/platform/opener/common/opener';
@@ -62,7 +62,7 @@ interface ICommentThreadTemplateData {
6262
icon: HTMLImageElement;
6363
userName: HTMLSpanElement;
6464
commentText: HTMLElement;
65-
disposables: Disposable[];
65+
disposables: IDisposable[];
6666
}
6767

6868
export class CommentsModelRenderer implements ITreeRenderer {

src/vs/workbench/contrib/preferences/browser/settingsTree.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { Color, RGBA } from 'vs/base/common/color';
2525
import { onUnexpectedError } from 'vs/base/common/errors';
2626
import { Emitter, Event } from 'vs/base/common/event';
2727
import { KeyCode } from 'vs/base/common/keyCodes';
28-
import { dispose, IDisposable, Disposable } from 'vs/base/common/lifecycle';
28+
import { dispose, IDisposable, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
2929
import { ISpliceable } from 'vs/base/common/sequence';
3030
import { escapeRegExpCharacters, startsWith } from 'vs/base/common/strings';
3131
import { URI } from 'vs/base/common/uri';
@@ -941,19 +941,19 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre
941941

942942
const deprecationWarningElement = DOM.append(container, $('.setting-item-deprecation-message'));
943943

944-
const toDispose: IDisposable[] = [];
944+
const toDispose = new DisposableStore();
945945
const checkbox = new Checkbox({ actionClassName: 'setting-value-checkbox', isChecked: true, title: '', inputActiveOptionBorder: undefined });
946946
controlElement.appendChild(checkbox.domNode);
947-
toDispose.push(checkbox);
948-
toDispose.push(checkbox.onChange(() => {
947+
toDispose.add(checkbox);
948+
toDispose.add(checkbox.onChange(() => {
949949
if (template.onChange) {
950950
template.onChange(checkbox.checked);
951951
}
952952
}));
953953

954954
// Need to listen for mouse clicks on description and toggle checkbox - use target ID for safety
955955
// Also have to ignore embedded links - too buried to stop propagation
956-
toDispose.push(DOM.addDisposableListener(descriptionElement, DOM.EventType.MOUSE_DOWN, (e) => {
956+
toDispose.add(DOM.addDisposableListener(descriptionElement, DOM.EventType.MOUSE_DOWN, (e) => {
957957
const targetElement = <HTMLElement>e.target;
958958
const targetId = descriptionElement.getAttribute('checkbox_label_target_id');
959959

@@ -970,10 +970,10 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre
970970
checkbox.domNode.classList.add(AbstractSettingRenderer.CONTROL_CLASS);
971971
const toolbarContainer = DOM.append(container, $('.setting-toolbar-container'));
972972
const toolbar = this.renderSettingToolbar(toolbarContainer);
973-
toDispose.push(toolbar);
973+
toDispose.add(toolbar);
974974

975975
const template: ISettingBoolItemTemplate = {
976-
toDispose,
976+
toDispose: [toDispose],
977977

978978
containerElement: container,
979979
categoryElement,
@@ -989,16 +989,16 @@ export class SettingBoolRenderer extends AbstractSettingRenderer implements ITre
989989
this.addSettingElementFocusHandler(template);
990990

991991
// Prevent clicks from being handled by list
992-
toDispose.push(DOM.addDisposableListener(controlElement, 'mousedown', (e: IMouseEvent) => e.stopPropagation()));
992+
toDispose.add(DOM.addDisposableListener(controlElement, 'mousedown', (e: IMouseEvent) => e.stopPropagation()));
993993

994-
toDispose.push(DOM.addStandardDisposableListener(controlElement, 'keydown', (e: StandardKeyboardEvent) => {
994+
toDispose.add(DOM.addStandardDisposableListener(controlElement, 'keydown', (e: StandardKeyboardEvent) => {
995995
if (e.keyCode === KeyCode.Escape) {
996996
e.browserEvent.stopPropagation();
997997
}
998998
}));
999999

1000-
toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_ENTER, e => container.classList.add('mouseover')));
1001-
toDispose.push(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_LEAVE, e => container.classList.remove('mouseover')));
1000+
toDispose.add(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_ENTER, e => container.classList.add('mouseover')));
1001+
toDispose.add(DOM.addDisposableListener(titleElement, DOM.EventType.MOUSE_LEAVE, e => container.classList.remove('mouseover')));
10021002

10031003
return template;
10041004
}

src/vs/workbench/services/output/common/outputChannelModel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ export abstract class AsbtractOutputChannelModelService {
5151

5252
export abstract class AbstractFileOutputChannelModel extends Disposable implements IOutputChannelModel {
5353

54-
protected _onDidAppendedContent = new Emitter<void>();
54+
protected readonly _onDidAppendedContent = this._register(new Emitter<void>());
5555
readonly onDidAppendedContent: Event<void> = this._onDidAppendedContent.event;
5656

57-
protected _onDispose = new Emitter<void>();
57+
protected readonly _onDispose = this._register(new Emitter<void>());
5858
readonly onDispose: Event<void> = this._onDispose.event;
5959

6060
protected modelUpdater: RunOnceScheduler;

src/vs/workbench/services/textMate/browser/abstractTextMateService.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,16 @@ import { IEmbeddedLanguagesMap as IEmbeddedLanguagesMap2, IGrammar, ITokenTypeMa
2727
import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle';
2828
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
2929

30-
export class TMScopeRegistry {
30+
export class TMScopeRegistry extends Disposable {
3131

3232
private _scopeNameToLanguageRegistration: { [scopeName: string]: TMLanguageRegistration; };
3333
private _encounteredLanguages: boolean[];
3434

35-
private readonly _onDidEncounterLanguage = new Emitter<LanguageId>();
35+
private readonly _onDidEncounterLanguage = this._register(new Emitter<LanguageId>());
3636
public readonly onDidEncounterLanguage: Event<LanguageId> = this._onDidEncounterLanguage.event;
3737

3838
constructor() {
39+
super();
3940
this.reset();
4041
}
4142

src/vs/workbench/services/themes/common/fileIconThemeStore.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { IExtensionService } from 'vs/workbench/services/extensions/common/exten
1313
import { Event, Emitter } from 'vs/base/common/event';
1414
import { FileIconThemeData } from 'vs/workbench/services/themes/common/fileIconThemeData';
1515
import { URI } from 'vs/base/common/uri';
16+
import { Disposable } from 'vs/base/common/lifecycle';
1617

1718
const iconThemeExtPoint = ExtensionsRegistry.registerExtensionPoint<IThemeExtensionPoint[]>({
1819
extensionPoint: 'iconThemes',
@@ -46,16 +47,16 @@ export interface FileIconThemeChangeEvent {
4647
added: FileIconThemeData[];
4748
}
4849

49-
export class FileIconThemeStore {
50+
export class FileIconThemeStore extends Disposable {
5051

5152
private knownIconThemes: FileIconThemeData[];
52-
private readonly onDidChangeEmitter: Emitter<FileIconThemeChangeEvent>;
5353

54-
public get onDidChange(): Event<FileIconThemeChangeEvent> { return this.onDidChangeEmitter.event; }
54+
private readonly onDidChangeEmitter = this._register(new Emitter<FileIconThemeChangeEvent>());
55+
readonly onDidChange: Event<FileIconThemeChangeEvent> = this.onDidChangeEmitter.event;
5556

5657
constructor(@IExtensionService private readonly extensionService: IExtensionService) {
58+
super();
5759
this.knownIconThemes = [];
58-
this.onDidChangeEmitter = new Emitter<FileIconThemeChangeEvent>();
5960
this.initialize();
6061
}
6162

@@ -167,5 +168,4 @@ export class FileIconThemeStore {
167168
return this.knownIconThemes;
168169
});
169170
}
170-
171171
}

0 commit comments

Comments
 (0)