mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 19:42:36 +02:00
GP-1155 fix hang when "Set External Program" on large shared project.
Fixes issue #3245.
This commit is contained in:
parent
db2ee5c7fd
commit
bec0c51bc5
1 changed files with 9 additions and 7 deletions
|
@ -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<GTreeNode> 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<GTreeNode> it = root.iterator(true); it.hasNext();) {
|
||||
GTreeNode node = it.next();
|
||||
if (node.getName().equals(s)) {
|
||||
tree.setSelectedNode(node);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue