Skip to content

Commit fc99345

Browse files
committed
Revert "Avoid re-implementing Disposable"
This reverts commit 27a628b.
1 parent 0437705 commit fc99345

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

src/vs/workbench/services/decorations/browser/decorationsService.ts

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { URI } from 'vs/base/common/uri';
77
import { Event, Emitter } from 'vs/base/common/event';
88
import { IDecorationsService, IDecoration, IResourceDecorationChangeEvent, IDecorationsProvider, IDecorationData } from './decorations';
99
import { TernarySearchTree } from 'vs/base/common/map';
10-
import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
10+
import { Disposable, IDisposable, toDisposable, dispose } from 'vs/base/common/lifecycle';
1111
import { isThenable } from 'vs/base/common/async';
1212
import { LinkedList } from 'vs/base/common/linkedList';
1313
import { createStyleSheet, createCSSRule, removeCSSRulesContainingSelector } from 'vs/base/browser/dom';
@@ -334,14 +334,15 @@ class DecorationProviderWrapper {
334334
}
335335
}
336336

337-
export class FileDecorationsService extends Disposable implements IDecorationsService {
337+
export class FileDecorationsService implements IDecorationsService {
338338

339339
_serviceBrand: any;
340340

341341
private readonly _data = new LinkedList<DecorationProviderWrapper>();
342-
private readonly _onDidChangeDecorationsDelayed = this._register(new Emitter<URI | URI[]>());
343-
private readonly _onDidChangeDecorations = this._register(new Emitter<IResourceDecorationChangeEvent>());
342+
private readonly _onDidChangeDecorationsDelayed = new Emitter<URI | URI[]>();
343+
private readonly _onDidChangeDecorations = new Emitter<IResourceDecorationChangeEvent>();
344344
private readonly _decorationStyles: DecorationStyles;
345+
private readonly _disposables: IDisposable[];
345346

346347
readonly onDidChangeDecorations: Event<IResourceDecorationChangeEvent> = Event.any(
347348
this._onDidChangeDecorations.event,
@@ -355,17 +356,27 @@ export class FileDecorationsService extends Disposable implements IDecorationsSe
355356
constructor(
356357
@IThemeService themeService: IThemeService
357358
) {
358-
super();
359-
this._decorationStyles = this._register(new DecorationStyles(themeService));
359+
this._decorationStyles = new DecorationStyles(themeService);
360360

361361
// every so many events we check if there are
362362
// css styles that we don't need anymore
363363
let count = 0;
364-
this._register(this.onDidChangeDecorations(() => {
364+
let reg = this.onDidChangeDecorations(() => {
365365
if (++count % 17 === 0) {
366366
this._decorationStyles.cleanUp(this._data.iterator());
367367
}
368-
}));
368+
});
369+
370+
this._disposables = [
371+
reg,
372+
this._decorationStyles
373+
];
374+
}
375+
376+
dispose(): void {
377+
dispose(this._disposables);
378+
dispose(this._onDidChangeDecorations);
379+
dispose(this._onDidChangeDecorationsDelayed);
369380
}
370381

371382
registerDecorationsProvider(provider: IDecorationsProvider): IDisposable {

0 commit comments

Comments
 (0)