GP-5577 avoid indexing large projects

This commit is contained in:
dev747368 2025-04-09 18:04:30 +00:00
parent 2c5669dbd0
commit 96e0532f8d
2 changed files with 6 additions and 5 deletions

View file

@ -4,9 +4,9 @@
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@ -20,6 +20,7 @@ import java.util.*;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import ghidra.formats.gfilesystem.FSRL; import ghidra.formats.gfilesystem.FSRL;
import ghidra.framework.main.datatable.ProjectDataTablePanel;
import ghidra.framework.model.*; import ghidra.framework.model.*;
import ghidra.util.Swing; import ghidra.util.Swing;
import ghidra.util.task.TaskMonitor; import ghidra.util.task.TaskMonitor;
@ -119,7 +120,7 @@ public class ProjectIndexService implements DomainFolderChangeListener {
private void indexProject(ProjectData projectData, TaskMonitor monitor) { private void indexProject(ProjectData projectData, TaskMonitor monitor) {
int fileCount = projectData.getFileCount(); int fileCount = projectData.getFileCount();
if (fileCount < 0) { if (fileCount < 0 || fileCount > ProjectDataTablePanel.MAX_FILE_COUNT) {
return; return;
} }
monitor.initialize(fileCount, "Indexing Project Metadata"); monitor.initialize(fileCount, "Indexing Project Metadata");

View file

@ -45,7 +45,7 @@ public class ProjectDataTablePanel extends JPanel {
private static final String MAX_FILE_COUNT_PROPERTY = "ProjectDataTable.maxFileCount"; private static final String MAX_FILE_COUNT_PROPERTY = "ProjectDataTable.maxFileCount";
private static final int MAX_FILE_COUNT_DEFAULT = 2000; private static final int MAX_FILE_COUNT_DEFAULT = 2000;
private static int maxFileCount = loadMaxFileCount(); public static final int MAX_FILE_COUNT = loadMaxFileCount();
private FrontEndPlugin plugin; private FrontEndPlugin plugin;
private PluginTool tool; private PluginTool tool;
@ -190,7 +190,7 @@ public class ProjectDataTablePanel extends JPanel {
int fileCount = projectData.getFileCount(); int fileCount = projectData.getFileCount();
if (fileCount < 0 || fileCount > maxFileCount) { if (fileCount < 0 || fileCount > MAX_FILE_COUNT) {
capacityExceeded = true; capacityExceeded = true;
this.projectData.removeDomainFolderChangeListener(changeListener); this.projectData.removeDomainFolderChangeListener(changeListener);
model.setProjectData(null); model.setProjectData(null);