From f908835810b2e4cb7cb66562edf19d8bf60d9ea8 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 28 Oct 2016 21:19:49 +0300 Subject: [PATCH] IDEA-162905 improve performance of children processing --- .../src/com/intellij/ide/util/treeView/AbstractTreeUi.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java index 326ca7ff470b..ed226b387a3f 100644 --- a/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java +++ b/platform/platform-api/src/com/intellij/ide/util/treeView/AbstractTreeUi.java @@ -2689,6 +2689,11 @@ public class AbstractTreeUi { update(updateInfo.getDescriptor(), true); } + if (!updateInfo.isUpdateChildren()) { + nodeToProcessActions[0] = node; + return; + } + Object element = getElementFromDescriptor(updateInfo.getDescriptor()); if (element == null) { removeFromLoadedInBackground(oldElementFromDescriptor); @@ -2698,7 +2703,7 @@ public class AbstractTreeUi { elementFromDescriptor.set(element); - Object[] loadedElements = updateInfo.isUpdateChildren() ? getChildrenFor(element) : ArrayUtil.EMPTY_OBJECT_ARRAY; + Object[] loadedElements = getChildrenFor(element); final LoadedChildren loaded = new LoadedChildren(loadedElements); for (final Object each : loadedElements) {