1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-17 05:55:22 +02:00

1. Fix for the [Bug 190432] Path entries corrupted with old style projects from Gerhard Schaber (Windriver)

2. Additional fixes for the backward compatibility mechanism
This commit is contained in:
Mikhail Sennikovsky 2007-06-01 11:55:58 +00:00
parent 9a5093a3c3
commit a16b6dd5de

View file

@ -236,11 +236,7 @@ public class PathEntryConfigurationDataProvider extends
throws CoreException {
//TODO: check external/reference info here as well.
if(!fFactory.isModified(base)){
try {
return createData(des);
} catch (Exception e){
}
return base;
return createData(des, base, false);
}
@ -254,14 +250,31 @@ public class PathEntryConfigurationDataProvider extends
List list = new ArrayList();
list.addAll(Arrays.asList(entries));
for(int i = 0; i < curRawEntries.length; i++){
if(curRawEntries[i].getEntryKind() != IPathEntry.CDT_CONTAINER){
if(curRawEntries[i].getEntryKind() == IPathEntry.CDT_CONTAINER){
list.add(curRawEntries[i]);
}
}
IPathEntry[] newEntries = (IPathEntry[])list.toArray(new IPathEntry[list.size()]);
PathEntryManager.getDefault().setRawPathEntries(cproject, newEntries, new NullProgressMonitor());
return createData(des);
return createData(des, base, false);
}
private CConfigurationData createData(ICConfigurationDescription des, CConfigurationData fallbackData, boolean modifiedFlag) throws CoreException {
CConfigurationData dataToReturn;
try {
dataToReturn = createData(des);
} catch (Exception e){
if(fallbackData != null)
dataToReturn = fallbackData;
else if (e instanceof CoreException)
throw (CoreException)e;
else
throw ExceptionFactory.createCoreException(e);
}
fFactory.setModified(dataToReturn, modifiedFlag);
return dataToReturn;
}
public CConfigurationData createConfiguration(
@ -337,7 +350,7 @@ public class PathEntryConfigurationDataProvider extends
public CConfigurationData loadConfiguration(ICConfigurationDescription des,
IProgressMonitor monitor)
throws CoreException {
return createData(des);
return createData(des, null, false);
}
public void removeConfiguration(ICConfigurationDescription des,
@ -346,4 +359,9 @@ public class PathEntryConfigurationDataProvider extends
//do nothing for now
}
public void dataCached(ICConfigurationDescription cfgDes,
CConfigurationData data, IProgressMonitor monitor) {
fFactory.setModified(data, false);
}
}