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;
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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){
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue