diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/ProjectDataTreePanel.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/ProjectDataTreePanel.java index 014ff6be8a..e927527a6d 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/ProjectDataTreePanel.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/datatree/ProjectDataTreePanel.java @@ -47,6 +47,7 @@ import ghidra.util.task.TaskMonitor; public class ProjectDataTreePanel extends JPanel { private static final String EXPANDED_PATHS_SEPARATOR = ":"; + private static final int MAX_PROJECT_SIZE_TO_SEARCH = 1000; private DataTree tree; private ProjectData projectData; @@ -488,13 +489,14 @@ public class ProjectDataTreePanel extends JPanel { * @param s node name */ public void findAndSelect(String s) { - tree.expandTree(root); - Iterator it = root.iterator(true); - while (it.hasNext()) { - GTreeNode node = it.next(); - if (node.getName().equals(s)) { - tree.setSelectedNode(node); - return; + if (projectData.getFileCount() < MAX_PROJECT_SIZE_TO_SEARCH) { + tree.expandTree(root); + for (Iterator it = root.iterator(true); it.hasNext();) { + GTreeNode node = it.next(); + if (node.getName().equals(s)) { + tree.setSelectedNode(node); + return; + } } } }