diff options
author | Alain Magloire | 2004-03-04 03:00:31 +0000 |
---|---|---|
committer | Alain Magloire | 2004-03-04 03:00:31 +0000 |
commit | 0c59594c730a9ebe719fe71f510c7f685b61733d (patch) | |
tree | cafa11846cf2e4992965ca66b80bb304db4d672b | |
parent | 4eab4a897e0c6c4c3817c84dec062fd98a1ddfe1 (diff) | |
download | org.eclipse.cdt-0c59594c730a9ebe719fe71f510c7f685b61733d.tar.gz org.eclipse.cdt-0c59594c730a9ebe719fe71f510c7f685b61733d.tar.xz org.eclipse.cdt-0c59594c730a9ebe719fe71f510c7f685b61733d.zip |
Restart the BinaryRunner when changing the BinaryParser
-rw-r--r-- | core/org.eclipse.cdt.core/ChangeLog | 7 | ||||
-rw-r--r-- | core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java | 13 |
2 files changed, 17 insertions, 3 deletions
diff --git a/core/org.eclipse.cdt.core/ChangeLog b/core/org.eclipse.cdt.core/ChangeLog index d562011f27b..a5b1cf0bad6 100644 --- a/core/org.eclipse.cdt.core/ChangeLog +++ b/core/org.eclipse.cdt.core/ChangeLog @@ -1,5 +1,12 @@ 2004-03-03 Alain Magloire + When changing the BinaryParser the BinaryRunners + were not restarted. + + * model/org/eclipse/cdt/iternal/core/model/CModelManager.java + +2004-03-03 Alain Magloire + From Sean Sevoy. Fix to VCErrorParser.java PR 53253. diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java index 6c2f99fd720..cb55ac1c19b 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CModelManager.java @@ -316,7 +316,7 @@ public class CModelManager implements IResourceChangeListener { registerCModelDelta(delta); } else if (type == ICElement.C_BINARY) { if (! ((IBinary)celement).isObject()) { -//System.out.println("RELEASE Binary " + cfile.getElementName()); +System.out.println("RELEASE Binary " + celement.getElementName()); CProject cproj = (CProject)celement.getCProject(); BinaryContainer container = (BinaryContainer)cproj.getBinaryContainer(); container.removeChild(celement); @@ -327,7 +327,7 @@ public class CModelManager implements IResourceChangeListener { } if (celement instanceof IParent) { - if ( peekAtInfo(celement) != null ) { + if (peekAtInfo(celement) != null) { CElementInfo info = ((CElement)celement).getElementInfo(); if (info != null) { ICElement[] children = info.getChildren(); @@ -344,14 +344,21 @@ public class CModelManager implements IResourceChangeListener { if (pinfo.vLib != null) { releaseCElement(pinfo.vLib); } + IProject project = celement.getCProject().getProject(); + BinaryRunner runner = (BinaryRunner) binaryRunners.remove(project); + if (runner != null) { + runner.stop(); + } } } } else { + // If an entire folder was deleted we need to update the + // BinaryContainer/ArchiveContainer also. ICProject cproject = celement.getCProject(); CProjectInfo info = (CProjectInfo)peekAtInfo(cproject); if (info != null && info.vBin != null) { if (peekAtInfo(info.vBin) != null) { - ICElement[] bins = info.getChildren(); + ICElement[] bins = info.vBin.getChildren(); for (int i = 0; i < bins.length; i++) { if (celement.getPath().isPrefixOf(bins[i].getPath())) { CElementDelta delta = new CElementDelta(getCModel()); |