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

View file

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

View file

@ -309,7 +309,7 @@ public class CLanguageSetting extends CDataProxy implements
// int kinds[] = KindBasedStore.getSupportedKinds(); // int kinds[] = KindBasedStore.getSupportedKinds();
for(int i = 0; i < kinds.length; i++){ 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) if((kind & kinds[i]) != 0)
data.setEntries(kinds[i], sortedEntries); data.setEntries(kinds[i], sortedEntries);
} }