From 16d736d9f1a80e8fffeba67df808e9edb5714088 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 19 Dec 2018 16:32:13 +0100 Subject: [PATCH] fixes #65213 --- src/vs/base/browser/ui/tree/asyncDataTree.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/vs/base/browser/ui/tree/asyncDataTree.ts b/src/vs/base/browser/ui/tree/asyncDataTree.ts index fac68e3b949..b0970cb21bb 100644 --- a/src/vs/base/browser/ui/tree/asyncDataTree.ts +++ b/src/vs/base/browser/ui/tree/asyncDataTree.ts @@ -514,6 +514,16 @@ export class AsyncDataTree implements IDisposable } private setChildren(node: IAsyncDataTreeNode, childrenElements: T[], recursive: boolean): void { + let nodeChildren: Map> | undefined; + + if (this.identityProvider) { + nodeChildren = new Map(); + + for (const child of node.children!) { + nodeChildren.set(child.id!, child); + } + } + const children = childrenElements.map>>(element => { if (!this.identityProvider) { return { @@ -527,14 +537,8 @@ export class AsyncDataTree implements IDisposable }; } - const nodeChildren = new Map>(); - - for (const child of node.children!) { - nodeChildren.set(child.id!, child); - } - const id = this.identityProvider.getId(element).toString(); - const asyncDataTreeNode = nodeChildren.get(id); + const asyncDataTreeNode = nodeChildren!.get(id); if (!asyncDataTreeNode) { return {