From 1c2b3a889746d90427bd306a8b61ac93c0d87275 Mon Sep 17 00:00:00 2001 From: Mikhail Sennikovsky Date: Mon, 26 Mar 2007 09:24:16 +0000 Subject: [PATCH] Additional fix for [Bug 178716] No way to get rid of built-in includes --- .../core/ManagedBuildManager.java | 2 +- .../core/settings/model/util/EntryStore.java | 2 +- .../core/settings/model/CLanguageSetting.java | 40 ++++++++++++++----- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java index 4c5f6ee72e7..5d6192b7b10 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java @@ -3562,7 +3562,7 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI return getConfigurationForDescription(cfgDes, TEST_CONSISTANCE); } - public static IConfiguration getConfigurationForDescription(ICConfigurationDescription cfgDes, boolean checkConsistance){ + private static IConfiguration getConfigurationForDescription(ICConfigurationDescription cfgDes, boolean checkConsistance){ if(cfgDes == null) return null; CConfigurationData cfgData = cfgDes.getConfigurationData(); diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java index 42d112f6a5a..65bdc4018d8 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/EntryStore.java @@ -125,7 +125,7 @@ public class EntryStore { } public void storeEntries(int kind, ICLanguageSettingEntry[] entries){ - List newList = new ArrayList(); + List newList = new ArrayList(entries.length); newList.addAll(Arrays.asList(entries)); if(fPreserveReadOnly){ List oldList = getEntriesList(kind, false); diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java index 51b8e8bd494..e21f70b47fe 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CLanguageSetting.java @@ -21,6 +21,7 @@ import org.eclipse.cdt.core.settings.model.extension.CLanguageData; import org.eclipse.cdt.core.settings.model.extension.impl.CDefaultLanguageData; import org.eclipse.cdt.core.settings.model.util.CDataUtil; import org.eclipse.cdt.core.settings.model.util.EntryStore; +import org.eclipse.cdt.core.settings.model.util.KindBasedStore; import org.eclipse.core.resources.IProject; public class CLanguageSetting extends CDataProxy implements @@ -257,11 +258,20 @@ public class CLanguageSetting extends CDataProxy implements // KindBasedStore nameSetStore = new KindBasedStore(); int eKind; if(entries != null){ - for(int i = 0; i < entries.length; i++){ - ICLanguageSettingEntry entry = entries[i]; - eKind = entry.getKind(); - if((kind & eKind) != 0 && (data.getSupportedEntryKinds() & eKind) != 0){ - store.addEntry(entry); + if(entries.length != 0){ + for(int i = 0; i < entries.length; i++){ + ICLanguageSettingEntry entry = entries[i]; + eKind = entry.getKind(); + if((kind & eKind) != 0 && (data.getSupportedEntryKinds() & eKind) != 0){ + store.addEntry(entry); + } + } + } else { + int kinds[] = KindBasedStore.getLanguageEntryKinds(); + for(int i = 0; i < kinds.length; i++){ + if((kinds[i] & kind) != 0){ + store.storeEntries(kinds[i], new ICLanguageSettingEntry[0]); + } } } } @@ -290,12 +300,22 @@ public class CLanguageSetting extends CDataProxy implements EntryStore store = new EntryStore(); // KindBasedStore nameSetStore = new KindBasedStore(); int eKind; + if(list != null){ - for(Iterator iter = list.iterator(); iter.hasNext();){ - ICLanguageSettingEntry entry = (ICLanguageSettingEntry)iter.next(); - eKind = entry.getKind(); - if((kind & eKind) != 0 && (data.getSupportedEntryKinds() & eKind) != 0){ - store.addEntry(entry); + if(list.size() != 0){ + for(Iterator iter = list.iterator(); iter.hasNext();){ + ICLanguageSettingEntry entry = (ICLanguageSettingEntry)iter.next(); + eKind = entry.getKind(); + if((kind & eKind) != 0 && (data.getSupportedEntryKinds() & eKind) != 0){ + store.addEntry(entry); + } + } + } else { + int kinds[] = KindBasedStore.getLanguageEntryKinds(); + for(int i = 0; i < kinds.length; i++){ + if((kinds[i] & kind) != 0){ + store.storeEntries(kinds[i], new ICLanguageSettingEntry[0]); + } } } }