1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-12 02:35:37 +02:00

1. Update for built-in settings remove mechanism

2. Cfg-to-Cfg Des consisteny check
This commit is contained in:
Mikhail Sennikovsky 2007-03-23 16:39:44 +00:00
parent 2ed0cb1fd0
commit 546f7aa8cf
3 changed files with 30 additions and 6 deletions

View file

@ -3556,12 +3556,25 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
return null;
}
*/
private static final boolean TEST_CONSISTANCE = false;
public static IConfiguration getConfigurationForDescription(ICConfigurationDescription cfgDes){
return getConfigurationForDescription(cfgDes, TEST_CONSISTANCE);
}
public static IConfiguration getConfigurationForDescription(ICConfigurationDescription cfgDes, boolean checkConsistance){
if(cfgDes == null)
return null;
CConfigurationData cfgData = cfgDes.getConfigurationData();
if(cfgData instanceof BuildConfigurationData)
return ((BuildConfigurationData)cfgData).getConfiguration();
if(cfgData instanceof BuildConfigurationData){
IConfiguration cfg = ((BuildConfigurationData)cfgData).getConfiguration();
if(checkConsistance){
if(cfgDes != getDescriptionForConfiguration(cfg, false)){
throw new IllegalStateException();
}
}
return cfg;
}
return null;
}
@ -3641,8 +3654,14 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
return 0;
}
public static ICConfigurationDescription getDescriptionForConfiguration(IConfiguration cfg){
return getDescriptionForConfiguration(cfg, TEST_CONSISTANCE);
}
private static ICConfigurationDescription getDescriptionForConfiguration(IConfiguration cfg, boolean checkConsistance){
ICConfigurationDescription des = ((Configuration)cfg).getConfigurationDescription();
if(des == null){
if(checkConsistance)
throw new IllegalStateException();
if(((Configuration)cfg).isPreference()){
try {
des = CCorePlugin.getDefault().getPreferenceConfiguration(CFG_DATA_PROVIDER_ID);
@ -3657,6 +3676,11 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI
}
}
}
if(checkConsistance){
if(cfg != getConfigurationForDescription(des, false)){
throw new IllegalStateException();
}
}
return des;
}

View file

@ -63,9 +63,9 @@ public class EntryStore {
return (ICLanguageSettingEntry[])result.toArray(new ICLanguageSettingEntry[result.size()]);
}
public boolean containsEntries(int kind){
List list = getEntriesList(kind);
return list != null && list.size() != 0;
public boolean containsEntriesList(int kind){
List list = getEntriesList(kind, false);
return list != null;
}
public ICLanguageSettingEntry[] getEntries(int kind){

View file

@ -309,7 +309,7 @@ public class CLanguageSetting extends CDataProxy implements
// int kinds[] = KindBasedStore.getSupportedKinds();
for(int i = 0; i < kinds.length; i++){
ICLanguageSettingEntry sortedEntries[] = store.containsEntries(kinds[i]) ? store.getEntries(kinds[i]) : null;
ICLanguageSettingEntry sortedEntries[] = store.containsEntriesList(kinds[i]) ? store.getEntries(kinds[i]) : null;
if((kind & kinds[i]) != 0)
data.setEntries(kinds[i], sortedEntries);
}