From a0d5e302cba93632b5ae01220ce8ba44a9bf3f50 Mon Sep 17 00:00:00 2001 From: David Inglis Date: Thu, 19 Feb 2004 19:46:46 +0000 Subject: [PATCH] fixed bug# 52490 --- .../make/internal/core/MakeTargetManager.java | 13 +++++----- .../make/internal/core/ProjectTargets.java | 25 ++++++++++--------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java index 88fc254a29b..84491a84928 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTargetManager.java @@ -74,8 +74,8 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis if (projectTargets == null) { projectTargets = readTargets(project); } - ((MakeTarget)target).setContainer(container); - projectTargets.add((MakeTarget)target); + ((MakeTarget) target).setContainer(container); + projectTargets.add((MakeTarget) target); writeTargets(projectTargets); notifyListeners(new MakeTargetEvent(this, MakeTargetEvent.TARGET_ADD, target)); } @@ -86,9 +86,10 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis if (projectTargets == null) { projectTargets = readTargets(project); } - projectTargets.remove(target); - writeTargets(projectTargets); - notifyListeners(new MakeTargetEvent(this, MakeTargetEvent.TARGET_REMOVED, target)); + if (projectTargets.remove(target)) { + writeTargets(projectTargets); + notifyListeners(new MakeTargetEvent(this, MakeTargetEvent.TARGET_REMOVED, target)); + } } public void renameTarget(IMakeTarget target, String name) throws CoreException { @@ -203,7 +204,7 @@ public class MakeTargetManager implements IMakeTargetManager, IResourceChangeLis int flags = delta.getFlags(); int deltaKind = delta.getKind(); if (deltaKind == IResourceDelta.ADDED) { - if (hasTargetBuilder(project)) { + if (hasTargetBuilder(project) && !fProjects.contains(project)) { fProjects.add(project); notifyListeners(new MakeTargetEvent(MakeTargetManager.this, MakeTargetEvent.PROJECT_ADDED, project)); } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java index 02cb04a5677..cb194bf114a 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/ProjectTargets.java @@ -131,19 +131,19 @@ public class ProjectTargets { } public IMakeTarget[] get(IContainer container) { - ArrayList list = (ArrayList)targetMap.get(container); + ArrayList list = (ArrayList) targetMap.get(container); if (list != null) { - return (IMakeTarget[])list.toArray(new IMakeTarget[list.size()]); + return (IMakeTarget[]) list.toArray(new IMakeTarget[list.size()]); } return new IMakeTarget[0]; } public IMakeTarget findTarget(IContainer container, String name) { - ArrayList list = (ArrayList)targetMap.get(container); + ArrayList list = (ArrayList) targetMap.get(container); if (list != null) { Iterator targets = list.iterator(); while (targets.hasNext()) { - IMakeTarget target = (IMakeTarget)targets.next(); + IMakeTarget target = (IMakeTarget) targets.next(); if (target.getName().equals(name)) { return target; } @@ -153,7 +153,7 @@ public class ProjectTargets { } public void add(MakeTarget target) throws CoreException { - ArrayList list = (ArrayList)targetMap.get(target.getContainer()); + ArrayList list = (ArrayList) targetMap.get(target.getContainer()); if (list != null && list.contains(target)) { throw new CoreException(new Status(IStatus.ERROR, MakeCorePlugin.getUniqueIdentifier(), -1, MakeCorePlugin.getResourceString("MakeTargetManager.target_exists"), null)); //$NON-NLS-1$ } @@ -165,22 +165,23 @@ public class ProjectTargets { } public boolean contains(MakeTarget target) { - ArrayList list = (ArrayList)targetMap.get(target.getContainer()); + ArrayList list = (ArrayList) targetMap.get(target.getContainer()); if (list != null && list.contains(target)) { return true; } return false; } - public void remove(IMakeTarget target) { - ArrayList list = (ArrayList)targetMap.get(target.getContainer()); + public boolean remove(IMakeTarget target) { + ArrayList list = (ArrayList) targetMap.get(target.getContainer()); if (list == null || !list.contains(target)) { - return; + return false; } - list.remove(target); + boolean found = list.remove(target); if (list.size() == 0) { targetMap.remove(list); } + return found; } public IProject getProject() { @@ -193,9 +194,9 @@ public class ProjectTargets { doc.appendChild(targetsRootElement); Iterator container = targetMap.entrySet().iterator(); while (container.hasNext()) { - List targets = (List) ((Map.Entry)container.next()).getValue(); + List targets = (List) ((Map.Entry) container.next()).getValue(); for (int i = 0; i < targets.size(); i++) { - MakeTarget target = (MakeTarget)targets.get(i); + MakeTarget target = (MakeTarget) targets.get(i); targetsRootElement.appendChild(createTargetElement(doc, target)); } }