Skip to main content
summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorLeo Treggiari2005-07-04 22:51:47 +0000
committerLeo Treggiari2005-07-04 22:51:47 +0000
commitf4ecd611376e7cc5a2d40f0bfee3adf2563c5d10 (patch)
tree896a22d218bd5cbbf4e26b5ebcd9bbac7de77d63 /build
parent7197ddb46d259465ec2566d7b6a67dbe211c34d6 (diff)
downloadorg.eclipse.cdt-f4ecd611376e7cc5a2d40f0bfee3adf2563c5d10.tar.gz
org.eclipse.cdt-f4ecd611376e7cc5a2d40f0bfee3adf2563c5d10.tar.xz
org.eclipse.cdt-f4ecd611376e7cc5a2d40f0bfee3adf2563c5d10.zip
Fix *Dirty to account for new children
Diffstat (limited to 'build')
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java26
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java14
2 files changed, 40 insertions, 0 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
index 4f983a82687..b61a154b890 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java
@@ -1105,6 +1105,19 @@ public class InputType extends BuildObject implements IInputType {
public boolean isDirty() {
// This shouldn't be called for an extension InputType
if (isExtensionInputType) return false;
+
+ // Check my children
+ Iterator typeIter = getInputOrderList().iterator();
+ while (typeIter.hasNext()) {
+ InputOrder current = (InputOrder)typeIter.next();
+ if (current.isDirty()) return true;
+ }
+ typeIter = getAdditionalInputList().iterator();
+ while (typeIter.hasNext()) {
+ AdditionalInput current = (AdditionalInput)typeIter.next();
+ if (current.isDirty()) return true;
+ }
+
return isDirty;
}
@@ -1113,6 +1126,19 @@ public class InputType extends BuildObject implements IInputType {
*/
public void setDirty(boolean isDirty) {
this.isDirty = isDirty;
+ // Propagate "false" to the children
+ if (!isDirty) {
+ Iterator typeIter = getInputOrderList().iterator();
+ while (typeIter.hasNext()) {
+ InputOrder current = (InputOrder)typeIter.next();
+ current.setDirty(false);
+ }
+ typeIter = getAdditionalInputList().iterator();
+ while (typeIter.hasNext()) {
+ AdditionalInput current = (AdditionalInput)typeIter.next();
+ current.setDirty(false);
+ }
+ }
}
/* (non-Javadoc)
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
index 7362f8e011a..d8f9df51020 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
@@ -2265,6 +2265,20 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory {
// If I need saving, just say yes
if (isDirty) return true;
+ // Check my children
+ List typeElements = getInputTypeList();
+ Iterator iter = typeElements.listIterator();
+ while (iter.hasNext()) {
+ InputType type = (InputType) iter.next();
+ if (type.isDirty()) return true;
+ }
+ typeElements = getOutputTypeList();
+ iter = typeElements.listIterator();
+ while (iter.hasNext()) {
+ OutputType type = (OutputType) iter.next();
+ if (type.isDirty()) return true;
+ }
+
// Otherwise see if any options need saving
if (super.isDirty()) {
return true;

Back to the top