# HG changeset patch # User ryall # Date 1243454848 18000 # Node ID 79d8b140b8cde49d18621532223d86841b46501c # Parent 81d8e95d1a02fbfe83ff0fb0e70d1e06c06c6003 Apple patch to prevent exe list refresh on import if nothing changed. diff -r 81d8e95d1a02 -r 79d8b140b8cd cdt/cdt_5_0_x/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/executables/ExecutablesManager.java --- a/cdt/cdt_5_0_x/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/executables/ExecutablesManager.java Sat Apr 25 12:47:00 2009 -0500 +++ b/cdt/cdt_5_0_x/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/executables/ExecutablesManager.java Wed May 27 15:07:28 2009 -0500 @@ -40,16 +40,16 @@ */ public class ExecutablesManager extends PlatformObject { - private HashMap executables = new HashMap(); - private List changeListeners = Collections.synchronizedList(new ArrayList()); - private List sourceFileRemappings = Collections.synchronizedList(new ArrayList()); - private List executableProviders = Collections.synchronizedList(new ArrayList()); - private List sourceFileProviders = Collections.synchronizedList(new ArrayList()); - private List executableImporters = Collections.synchronizedList(new ArrayList()); + private final HashMap executables = new HashMap(); + private final List changeListeners = Collections.synchronizedList(new ArrayList()); + private final List sourceFileRemappings = Collections.synchronizedList(new ArrayList()); + private final List executableProviders = Collections.synchronizedList(new ArrayList()); + private final List sourceFileProviders = Collections.synchronizedList(new ArrayList()); + private final List executableImporters = Collections.synchronizedList(new ArrayList()); private boolean refreshNeeded = true; private boolean tempDisableRefresh = false; - private Job refreshJob = new Job("Get Executables") { + private final Job refreshJob = new Job("Get Executables") { @Override public IStatus run(IProgressMonitor monitor) { @@ -190,6 +190,7 @@ } public void importExecutables(final String[] fileNames, IProgressMonitor monitor) { + boolean handled = false; try { tempDisableRefresh = true; @@ -208,7 +209,7 @@ }}); for (IExecutableImporter importer : executableImporters) { - boolean handled = importer.importExecutables(fileNames, new SubProgressMonitor(monitor, 1)); + handled = importer.importExecutables(fileNames, new SubProgressMonitor(monitor, 1)); if (handled || monitor.isCanceled()) { break; } @@ -219,7 +220,8 @@ tempDisableRefresh = false; } - refreshExecutables(monitor); + if (handled) + refreshExecutables(monitor); monitor.done(); } diff -r 81d8e95d1a02 -r 79d8b140b8cd cdt/cdt_5_0_x/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/executables/StandardExecutableImporter.java --- a/cdt/cdt_5_0_x/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/executables/StandardExecutableImporter.java Sat Apr 25 12:47:00 2009 -0500 +++ b/cdt/cdt_5_0_x/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/core/executables/StandardExecutableImporter.java Wed May 27 15:07:28 2009 -0500 @@ -60,6 +60,7 @@ IProject exeProject = null; boolean checkProject = false; + boolean handled = false; // Weed out existing ones for (String path : fileNames) { @@ -117,6 +118,7 @@ } importExecutable(exeProject, path); + handled = true; } monitor.worked(1); if (monitor.isCanceled()) { @@ -124,7 +126,7 @@ } } monitor.done(); - return true; + return handled; } public boolean AllowImport(IPath path) {