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:
parent
2ed0cb1fd0
commit
546f7aa8cf
3 changed files with 30 additions and 6 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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){
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue