1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-11 10:15:39 +02:00

Small fix for the discovery mechanism

This commit is contained in:
Mikhail Sennikovsky 2007-04-24 21:05:44 +00:00
parent f1bffec1a7
commit 03d6dd70f8
3 changed files with 30 additions and 16 deletions

View file

@ -156,6 +156,7 @@ public class ScannerConfigBuilder extends ACBuilder {
// update and persist scanner configuration // update and persist scanner configuration
CfgSCJobsUtil.updateScannerConfiguration(project, context, instance, buildInfo2, new SubProgressMonitor(monitor, 30)); CfgSCJobsUtil.updateScannerConfiguration(project, context, instance, buildInfo2, new SubProgressMonitor(monitor, 30));
CfgDiscoveredPathManager.getInstance().removeDiscoveredInfo(project, context, false);
if((flags & PERFORM_CORE_UPDATE) != 0) if((flags & PERFORM_CORE_UPDATE) != 0)
CfgDiscoveredPathManager.getInstance().updateCoreSettings(project, new IConfiguration[]{cfg}); CfgDiscoveredPathManager.getInstance().updateCoreSettings(project, new IConfiguration[]{cfg});

View file

@ -320,22 +320,26 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
return info; return info;
} }
private PathInfo removeCachedPathInfo(ContextInfo cInfo){ private void removeCachedPathInfo(ContextInfo cInfo){
// ICfgScannerConfigBuilderInfo2Set cfgInfo = cInfo.fCfgInfo; // ICfgScannerConfigBuilderInfo2Set cfgInfo = cInfo.fCfgInfo;
PathInfo info = getCachedPathInfo(cInfo, true, true, true); if(cInfo.fIsFerFileCache){
// boolean queryCfg = !cfgInfo.isPerRcTypeDiscovery(); Configuration cfg = (Configuration)cInfo.fInitialContext.getConfiguration();
// if(!queryCfg){ cfg.clearDiscoveredPathInfo();
// Tool tool = (Tool)context.getTool();
// if(tool != null){ IResourceInfo[] infos = cfg.getResourceInfos();
// info = tool.getDiscoveredPathInfo(context.getInputType()); for(int i = 0; i < infos.length; i++){
// } else { IResourceInfo rcInfo = infos[i];
// queryCfg = true; ITool[] tools = rcInfo.getTools();
// } for(int k = 0; k < tools.length; k++){
// } Tool tool = (Tool)tools[k];
// if(queryCfg) { tool.clearAllDiscoveredPathInfo();
// info = ((Configuration)context.getConfiguration()).getDiscoveredPathInfo(); }
// } }
return info; } else {
setCachedPathInfo(cInfo, null);
}
// PathInfo info = getCachedPathInfo(cInfo, true, true, true);
} }
private PathInfo getCachedPathInfo(ContextInfo cInfo, boolean queryParent, boolean clearIfInvalid, boolean clear){ private PathInfo getCachedPathInfo(ContextInfo cInfo, boolean queryParent, boolean clearIfInvalid, boolean clear){
@ -527,6 +531,10 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
} }
public void removeDiscoveredInfo(IProject project, CfgInfoContext context) { public void removeDiscoveredInfo(IProject project, CfgInfoContext context) {
removeDiscoveredInfo(project, context, true);
}
public void removeDiscoveredInfo(IProject project, CfgInfoContext context, boolean removeBaseCache) {
// if(context == null) // if(context == null)
// context = ScannerConfigUtil.createContextForProject(project); // context = ScannerConfigUtil.createContextForProject(project);
@ -534,6 +542,7 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
removeCachedPathInfo(cInfo); removeCachedPathInfo(cInfo);
if(removeBaseCache)
fBaseMngr.removeDiscoveredInfo(project, cInfo.fLoadContext.toInfoContext()); fBaseMngr.removeDiscoveredInfo(project, cInfo.fLoadContext.toInfoContext());
} }
} }

View file

@ -3921,6 +3921,10 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
return (PathInfoCache)discoveredInfoMap.remove(getTypeKey(type)); return (PathInfoCache)discoveredInfoMap.remove(getTypeKey(type));
} }
public void clearAllDiscoveredPathInfo(){
discoveredInfoMap.clear();
}
public void clearAllDiscoveredInfo(){ public void clearAllDiscoveredInfo(){
discoveredInfoMap.clear(); discoveredInfoMap.clear();
} }