Skip to content

Commit

Permalink
Revert "Fix tree data provider being accessed after disposed (#165087)"
Browse files Browse the repository at this point in the history
This reverts commit 5ab1806.
  • Loading branch information
sandy081 committed Nov 9, 2022
1 parent 23cd53c commit 02e72f6
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 25 deletions.
7 changes: 0 additions & 7 deletions src/vs/workbench/api/browser/mainThreadTreeViews.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,6 @@ export class MainThreadTreeViews extends Disposable implements MainThreadTreeVie
return controller.resolveDropFileData(requestId, dataItemId);
}

public async $disposeTree(treeViewId: string): Promise<void> {
const viewer = this.getTreeView(treeViewId);
if (viewer) {
viewer.dataProvider = undefined;
}
}

private async reveal(treeView: ITreeView, dataProvider: TreeViewDataProvider, itemIn: ITreeItem, parentChain: ITreeItem[], options: IRevealOptions): Promise<void> {
options = options ? options : { select: false, focus: false };
const select = isUndefinedOrNull(options.select) ? false : options.select;
Expand Down
1 change: 0 additions & 1 deletion src/vs/workbench/api/common/extHost.protocol.ts
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,6 @@ export interface MainThreadTreeViewsShape extends IDisposable {
$setTitle(treeViewId: string, title: string, description: string | undefined): void;
$setBadge(treeViewId: string, badge: IViewBadge | undefined): void;
$resolveDropFileData(destinationViewId: string, requestId: number, dataItemId: string): Promise<VSBuffer>;
$disposeTree(treeViewId: string): Promise<void>;
}

export interface MainThreadDownloadServiceShape extends IDisposable {
Expand Down
1 change: 0 additions & 1 deletion src/vs/workbench/api/common/extHostTreeViews.ts
Original file line number Diff line number Diff line change
Expand Up @@ -957,6 +957,5 @@ class ExtHostTreeView<T> extends Disposable {
this._refreshCancellationSource.dispose();

this.clearAll();
this.proxy.$disposeTree(this.viewId);
}
}
18 changes: 2 additions & 16 deletions src/vs/workbench/browser/parts/views/treeView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ import { ITreeViewsService } from 'vs/workbench/services/views/browser/treeViews
import { CodeDataTransfers } from 'vs/platform/dnd/browser/dnd';
import { addExternalEditorsDropData, toVSDataTransfer } from 'vs/editor/browser/dnd';
import { CheckboxStateHandler, TreeItemCheckbox } from 'vs/workbench/browser/parts/views/checkbox';
import { setTimeout0 } from 'vs/base/common/platform';

export class TreeViewPane extends ViewPane {

Expand Down Expand Up @@ -535,10 +534,6 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
}

setVisibility(isVisible: boolean): void {
// Throughout setVisibility we need to check if the tree view's data provider still exists.
// This can happen because the `getChildren` call to the extension can return
// after the tree has been disposed.

this.initialize();
isVisible = !!isVisible;
if (this.isVisible === isVisible) {
Expand All @@ -554,17 +549,13 @@ abstract class AbstractTreeView extends Disposable implements ITreeView {
DOM.hide(this.tree.getHTMLElement()); // make sure the tree goes out of the tabindex world by hiding it
}

if (this.isVisible && this.elementsToRefresh.length && this.dataProvider) {
if (this.isVisible && this.elementsToRefresh.length) {
this.doRefresh(this.elementsToRefresh);
this.elementsToRefresh = [];
}
}

setTimeout0(() => {
if (this.dataProvider) {
this._onDidChangeVisibility.fire(this.isVisible);
}
});
this._onDidChangeVisibility.fire(this.isVisible);

if (this.visible) {
this.activate();
Expand Down Expand Up @@ -1448,11 +1439,6 @@ class TreeMenus extends Disposable implements IDisposable {
}
return result;
}

override dispose() {
this.contextKeyService = undefined;
super.dispose();
}
}

export class CustomTreeView extends AbstractTreeView {
Expand Down

0 comments on commit 02e72f6

Please sign in to comment.