1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix for [Bug 197486] [Project Model] cannot set exclusion filter on ICSourceEntry for old-style projects

This commit is contained in:
Mikhail Sennikovsky 2007-08-10 16:00:42 +00:00
parent 3b9217b9ca
commit d7c915bbaa
3 changed files with 10 additions and 10 deletions

View file

@ -228,7 +228,7 @@ public class CPathEntryTest extends BaseTestCase {
} }
public void _testSetExclusionFilter_Bug197486() throws Exception { public void testSetExclusionFilter_Bug197486() throws Exception {
ICProject testProject = null; ICProject testProject = null;
try { try {
testProject = CProjectHelper.createCProject("cpathtest", "none", IPDOMManager.ID_NO_INDEXER); testProject = CProjectHelper.createCProject("cpathtest", "none", IPDOMManager.ID_NO_INDEXER);

View file

@ -412,12 +412,12 @@ public class PathEntryManager implements IPathEntryStoreListener, IElementChange
return null; return null;
} }
public PathEntryResolveInfo getResolveInfo(ICProject cproject) throws CModelException{ public PathEntryResolveInfo getResolveInfo(ICProject cproject, boolean useCache) throws CModelException{
PathEntryResolveInfo info = (PathEntryResolveInfo)resolvedInfoMap.get(cproject); PathEntryResolveInfo info = (PathEntryResolveInfo)resolvedInfoMap.get(cproject);
if(info == null){ if(info == null){
getResolvedPathEntries(cproject); getResolvedPathEntries(cproject);
info = (PathEntryResolveInfo)resolvedInfoMap.get(cproject); info = (PathEntryResolveInfo)resolvedInfoMap.get(cproject);
} else if(!getResolveInfoValidState(cproject)){ } else if(!useCache || !getResolveInfoValidState(cproject)){
Object[] resolved = getResolvedPathEntries(cproject, false, false); Object[] resolved = getResolvedPathEntries(cproject, false, false);
if(resolved != null) if(resolved != null)
info = (PathEntryResolveInfo)resolved[1]; info = (PathEntryResolveInfo)resolved[1];

View file

@ -236,7 +236,7 @@ public class PathEntryConfigurationDataProvider extends
throws CoreException { throws CoreException {
//TODO: check external/reference info here as well. //TODO: check external/reference info here as well.
if(!fFactory.isModified(base)){ if(!fFactory.isModified(base)){
return createData(des, base, false); return createData(des, base, false, true);
} }
@ -257,13 +257,13 @@ public class PathEntryConfigurationDataProvider extends
IPathEntry[] newEntries = (IPathEntry[])list.toArray(new IPathEntry[list.size()]); IPathEntry[] newEntries = (IPathEntry[])list.toArray(new IPathEntry[list.size()]);
PathEntryManager.getDefault().setRawPathEntries(cproject, newEntries, new NullProgressMonitor()); PathEntryManager.getDefault().setRawPathEntries(cproject, newEntries, new NullProgressMonitor());
return createData(des, base, false); return createData(des, base, false, false);
} }
private CConfigurationData createData(ICConfigurationDescription des, CConfigurationData fallbackData, boolean modifiedFlag) throws CoreException { private CConfigurationData createData(ICConfigurationDescription des, CConfigurationData fallbackData, boolean modifiedFlag, boolean useCache) throws CoreException {
CConfigurationData dataToReturn; CConfigurationData dataToReturn;
try { try {
dataToReturn = createData(des); dataToReturn = createData(des, useCache);
} catch (Exception e){ } catch (Exception e){
if(fallbackData != null) if(fallbackData != null)
dataToReturn = fallbackData; dataToReturn = fallbackData;
@ -288,11 +288,11 @@ public class PathEntryConfigurationDataProvider extends
return copy; return copy;
} }
private CfgData createData(ICConfigurationDescription des) throws CoreException{ private CfgData createData(ICConfigurationDescription des, boolean useCache) throws CoreException{
IProject project = des.getProjectDescription().getProject(); IProject project = des.getProjectDescription().getProject();
CModelManager manager = CModelManager.getDefault(); CModelManager manager = CModelManager.getDefault();
ICProject cproject = manager.create(project); ICProject cproject = manager.create(project);
PathEntryResolveInfo rInfo = PathEntryManager.getDefault().getResolveInfo(cproject); PathEntryResolveInfo rInfo = PathEntryManager.getDefault().getResolveInfo(cproject, useCache);
CfgData data = new CfgData(des.getId(), des.getName()); CfgData data = new CfgData(des.getId(), des.getName());
data.initEmptyData(); data.initEmptyData();
@ -350,7 +350,7 @@ public class PathEntryConfigurationDataProvider extends
public CConfigurationData loadConfiguration(ICConfigurationDescription des, public CConfigurationData loadConfiguration(ICConfigurationDescription des,
IProgressMonitor monitor) IProgressMonitor monitor)
throws CoreException { throws CoreException {
return createData(des, null, false); return createData(des, null, false, true);
} }
public void removeConfiguration(ICConfigurationDescription des, public void removeConfiguration(ICConfigurationDescription des,