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:
parent
9a5093a3c3
commit
a16b6dd5de
1 changed files with 26 additions and 8 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue