1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-08 18:26:01 +02:00

Scanner discovery fixes

This commit is contained in:
Mikhail Sennikovsky 2007-03-16 12:56:22 +00:00
parent eff63967da
commit 5e04b06ded
5 changed files with 112 additions and 59 deletions

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2004, 2006 QNX Software Systems and others. * Copyright (c) 2004, 2007 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -21,7 +21,6 @@ import org.eclipse.cdt.core.CCorePlugin;
import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.model.ICProject; import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.cdt.core.model.PathEntryContainerChanged; import org.eclipse.cdt.core.model.PathEntryContainerChanged;
import org.eclipse.cdt.core.settings.model.util.PathSettingsContainer;
import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.MakeCorePlugin;
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager; import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager;
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
@ -33,7 +32,6 @@ import org.eclipse.cdt.make.core.scannerconfig.ScannerConfigScope;
import org.eclipse.cdt.make.internal.core.MakeMessages; import org.eclipse.cdt.make.internal.core.MakeMessages;
import org.eclipse.cdt.make.internal.core.scannerconfig2.SCProfileInstance; import org.eclipse.cdt.make.internal.core.scannerconfig2.SCProfileInstance;
import org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager; import org.eclipse.cdt.make.internal.core.scannerconfig2.ScannerConfigProfileManager;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceChangeEvent; import org.eclipse.core.resources.IResourceChangeEvent;
@ -232,10 +230,12 @@ public class DiscoveredPathManager implements IDiscoveredPathManager, IResourceC
* @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager#updateDiscoveredInfo(org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo, java.util.List) * @see org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager#updateDiscoveredInfo(org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager.IDiscoveredPathInfo, java.util.List)
*/ */
public void updateDiscoveredInfo(InfoContext context, IDiscoveredPathInfo info, boolean updateContainer, List changedResources) throws CoreException { public void updateDiscoveredInfo(InfoContext context, IDiscoveredPathInfo info, boolean updateContainer, List changedResources) throws CoreException {
DiscoveredInfoHolder holder = getHolder(info.getProject(), false); DiscoveredInfoHolder holder = getHolder(info.getProject(), true);
if (holder != null && holder.getInfo(context) != null) { IDiscoveredPathInfo oldInfo = holder.getInfo(context);
if (oldInfo != null) {
IDiscoveredScannerInfoSerializable serializable = info.getSerializable(); IDiscoveredScannerInfoSerializable serializable = info.getSerializable();
if (serializable != null) { if (serializable != null) {
holder.setInfo(context, info);
IProject project = info.getProject(); IProject project = info.getProject();
DiscoveredScannerInfoStore.getInstance().saveDiscoveredScannerInfoToState(project, context, serializable); DiscoveredScannerInfoStore.getInstance().saveDiscoveredScannerInfoToState(project, context, serializable);
fireUpdate(INFO_CHANGED, info); fireUpdate(INFO_CHANGED, info);

View file

@ -25,11 +25,11 @@ import org.eclipse.cdt.core.settings.model.ICSettingBase;
import org.eclipse.cdt.core.settings.model.extension.CConfigurationData; import org.eclipse.cdt.core.settings.model.extension.CConfigurationData;
import org.eclipse.cdt.core.settings.model.extension.CResourceData; import org.eclipse.cdt.core.settings.model.extension.CResourceData;
import org.eclipse.cdt.make.core.MakeCorePlugin; import org.eclipse.cdt.make.core.MakeCorePlugin;
import org.eclipse.cdt.make.core.scannerconfig.PathInfo;
import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager; import org.eclipse.cdt.make.core.scannerconfig.IDiscoveredPathManager;
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2; import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector;
import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2; import org.eclipse.cdt.make.core.scannerconfig.IScannerInfoCollector2;
import org.eclipse.cdt.make.core.scannerconfig.PathInfo;
import org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredScannerInfoStore; import org.eclipse.cdt.make.internal.core.scannerconfig.DiscoveredScannerInfoStore;
import org.eclipse.cdt.make.internal.core.scannerconfig2.PerFileSICollector; import org.eclipse.cdt.make.internal.core.scannerconfig2.PerFileSICollector;
import org.eclipse.cdt.make.internal.core.scannerconfig2.SCProfileInstance; import org.eclipse.cdt.make.internal.core.scannerconfig2.SCProfileInstance;
@ -80,6 +80,20 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
boolean fIsFerFileCache; boolean fIsFerFileCache;
} }
public static class PathInfoCache{
private PathInfo fPathInfo;
private String fProfileId;
public PathInfo getPathInfo(){
return fPathInfo;
}
private PathInfoCache(String profileId, PathInfo pathInfo){
this.fProfileId = profileId;
this.fPathInfo = pathInfo;
}
}
private CfgDiscoveredPathManager() { private CfgDiscoveredPathManager() {
fBaseMngr = MakeCorePlugin.getDefault().getDiscoveryManager(); fBaseMngr = MakeCorePlugin.getDefault().getDiscoveryManager();
} }
@ -169,7 +183,7 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
private PathInfo resolveCacheBaseDiscoveredInfo(ContextInfo cInfo, IDiscoveredPathManager.IDiscoveredPathInfo baseInfo){ private PathInfo resolveCacheBaseDiscoveredInfo(ContextInfo cInfo, IDiscoveredPathManager.IDiscoveredPathInfo baseInfo){
if(cInfo.fIsFerFileCache){ if(cInfo.fIsFerFileCache){
if(baseInfo instanceof IDiscoveredPathManager.IPerFileDiscoveredPathInfo2){ if(baseInfo instanceof IDiscoveredPathManager.IPerFileDiscoveredPathInfo2){
resolveCachePerFileInfo(cInfo.fLoadContext.getConfiguration(), (IDiscoveredPathManager.IPerFileDiscoveredPathInfo2)baseInfo); resolveCachePerFileInfo(cInfo, (IDiscoveredPathManager.IPerFileDiscoveredPathInfo2)baseInfo);
} }
return getCachedPathInfo(cInfo); return getCachedPathInfo(cInfo);
} }
@ -178,12 +192,12 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
IPath paths[] = baseInfo.getIncludePaths(); IPath paths[] = baseInfo.getIncludePaths();
PathInfo info = new PathInfo(paths, null, map, null, null); PathInfo info = new PathInfo(paths, null, map, null, null);
setCachedPathInfo(cInfo.fCacheContext, info); setCachedPathInfo(cInfo, info);
return info; return info;
} }
private void resolveCachePerFileInfo(IConfiguration cfg, IDiscoveredPathManager.IPerFileDiscoveredPathInfo2 info){ private void resolveCachePerFileInfo(ContextInfo cInfo, IDiscoveredPathManager.IPerFileDiscoveredPathInfo2 info){
CConfigurationData data = cfg.getConfigurationData(); CConfigurationData data = cInfo.fLoadContext.getConfiguration().getConfigurationData();
if(data == null) if(data == null)
return; return;
@ -205,7 +219,7 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
rcData = rcInfo.getResourceData(); rcData = rcInfo.getResourceData();
rcDataMap.remove(rcData.getPath()); rcDataMap.remove(rcData.getPath());
cache(rcInfo); cache(cInfo, rcInfo);
} }
if(!rcDataMap.isEmpty()){ if(!rcDataMap.isEmpty()){
@ -215,18 +229,18 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
} }
} }
private void cache(IRcSettingInfo rcSetting){ private void cache(ContextInfo cInfo, IRcSettingInfo rcSetting){
CResourceData rcData = rcSetting.getResourceData(); CResourceData rcData = rcSetting.getResourceData();
clearCache(rcData); clearCache(rcData);
ILangSettingInfo lInfos[] = rcSetting.getLangInfos(); ILangSettingInfo lInfos[] = rcSetting.getLangInfos();
for(int i = 0; i < lInfos.length; i++){ for(int i = 0; i < lInfos.length; i++){
cache(lInfos[i]); cache(cInfo, lInfos[i]);
} }
} }
private void cache(ILangSettingInfo lInfo){ private void cache(ContextInfo cInfo, ILangSettingInfo lInfo){
BuildLanguageData bld = (BuildLanguageData)lInfo.getLanguageData(); BuildLanguageData bld = (BuildLanguageData)lInfo.getLanguageData();
((Tool)bld.getTool()).setDiscoveredPathInfo(bld.getInputType(), lInfo.getFilePathInfo()); setCachedPathInfo(cInfo, (Configuration)bld.getConfiguration(), (Tool)bld.getTool(), bld.getInputType(), lInfo.getFilePathInfo());
} }
private void clearCache(CResourceData rcData){ private void clearCache(CResourceData rcData){
@ -271,8 +285,7 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
private PathInfo getCachedPathInfo(ContextInfo cInfo){ private PathInfo getCachedPathInfo(ContextInfo cInfo){
// ICfgScannerConfigBuilderInfo2Set cfgInfo = cInfo.fCfgInfo; // ICfgScannerConfigBuilderInfo2Set cfgInfo = cInfo.fCfgInfo;
PathInfo info = getCachedPathInfo((Configuration)cInfo.fCacheContext.getConfiguration(), PathInfo info = getCachedPathInfo(cInfo, true, true);
(Tool)cInfo.fCacheContext.getTool(), cInfo.fCacheContext.getInputType(), true);
// boolean queryCfg = !cfgInfo.isPerRcTypeDiscovery(); // boolean queryCfg = !cfgInfo.isPerRcTypeDiscovery();
// if(!queryCfg){ // if(!queryCfg){
// Tool tool = (Tool)context.getTool(); // Tool tool = (Tool)context.getTool();
@ -288,13 +301,29 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
return info; return info;
} }
private PathInfo getCachedPathInfo(Configuration cfg, Tool tool, IInputType inType, boolean queryParent){ private PathInfo getCachedPathInfo(ContextInfo cInfo, boolean queryParent, boolean clearIfInvalid){
PathInfo info = null; return getCachedPathInfo(cInfo, (Configuration)cInfo.fCacheContext.getConfiguration(), (Tool)cInfo.fCacheContext.getTool(), cInfo.fCacheContext.getInputType(), queryParent, clearIfInvalid);
boolean queryCfg = false; }
private PathInfo getCachedPathInfo(ContextInfo cInfo, Configuration cfg, Tool tool, IInputType inType, boolean queryParent, boolean clearIfInvalid){
PathInfoCache infoCache = getPathInfoCache(cInfo, cfg, tool, inType, queryParent, clearIfInvalid);
if(infoCache != null && isCacheValid(cInfo, infoCache))
return infoCache.fPathInfo;
return null;
}
private PathInfoCache getPathInfoCache(ContextInfo cInfo, Configuration cfg, Tool tool, IInputType inType, boolean queryParent, boolean clearIfInvalid){
PathInfoCache info = null;
// boolean queryCfg = false;
if(tool != null){ if(tool != null){
info = tool.getDiscoveredPathInfo(inType); info = tool.getDiscoveredPathInfo(inType);
if(info == null && queryParent){ if(info != null){
IResourceInfo rcInfo = tool.getParentResourceInfo(); if(clearIfInvalid && !isCacheValid(cInfo, info)){
tool.clearDiscoveredPathInfo(inType);
// fBaseMngr.removeDiscoveredInfo(cfg.getOwner().getProject(), cInfo.fLoadContext.toInfoContext());
}
} else if(queryParent){
// IResourceInfo rcInfo = tool.getParentResourceInfo();
ITool superTool = tool.getSuperClass(); ITool superTool = tool.getSuperClass();
if(!superTool.isExtensionElement()){ if(!superTool.isExtensionElement()){
if(inType != null){ if(inType != null){
@ -306,22 +335,37 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
break; break;
} }
if(superInType != null){ if(superInType != null){
info = getCachedPathInfo(cfg, (Tool)superTool, superInType, true); info = getPathInfoCache(cInfo, cfg, (Tool)superTool, superInType, true, clearIfInvalid);
} }
} else { } else {
info = getCachedPathInfo(cfg, (Tool)superTool, null, true); info = getPathInfoCache(cInfo, cfg, (Tool)superTool, null, true, clearIfInvalid);
} }
} else { } else {
info = getCachedPathInfo(cfg, null, null, true); info = getPathInfoCache(cInfo, cfg, null, null, true, clearIfInvalid);
} }
} }
} else { } else {
info = cfg.getDiscoveredPathInfo(); info = cfg.getDiscoveredPathInfo();
if(clearIfInvalid && !isCacheValid(cInfo, info)){
cfg.clearDiscoveredPathInfo();
// fBaseMngr.removeDiscoveredInfo(cfg.getOwner().getProject(), cInfo.fLoadContext.toInfoContext());
}
} }
return info; return info;
} }
private boolean isCacheValid(ContextInfo cInfo, PathInfoCache cache){
if(cache == null)
return true;
if(cInfo.fInfo != null){
String id = cInfo.fInfo.getSelectedProfileId();
return id.equals(cache.fProfileId);
}
return false;
}
private ContextInfo getContextInfo(CfgInfoContext context){ private ContextInfo getContextInfo(CfgInfoContext context){
return getContextInfo(context, null); return getContextInfo(context, null);
} }
@ -415,25 +459,34 @@ public class CfgDiscoveredPathManager implements IResourceChangeListener {
return newContext; return newContext;
} }
private PathInfo setCachedPathInfo(CfgInfoContext context, PathInfo info){ private PathInfo setCachedPathInfo(ContextInfo cInfo, PathInfo info){
ICfgScannerConfigBuilderInfo2Set cfgInfo = CfgScannerConfigProfileManager.getCfgScannerConfigBuildInfo(context.getConfiguration()); CfgInfoContext cacheContext = cInfo.fCacheContext;
boolean cacheOnCfg = !cfgInfo.isPerRcTypeDiscovery(); return setCachedPathInfo(cInfo, (Configuration)cacheContext.getConfiguration(), (Tool)cacheContext.getTool(), cacheContext.getInputType(), info);
PathInfo oldInfo = null; }
if(!cacheOnCfg){
Tool tool = (Tool)context.getTool();
private PathInfo setCachedPathInfo(ContextInfo cInfo, Configuration cfg, Tool tool, IInputType inType, PathInfo info){
PathInfoCache oldInfo;
PathInfoCache cache;
if(info != null){
String id = cInfo.fInfo != null ? cInfo.fInfo.getSelectedProfileId() : null;
cache = new PathInfoCache(id, info);
} else {
cache = null;
}
if(tool != null){ if(tool != null){
if(info != null) if(info != null)
oldInfo = tool.setDiscoveredPathInfo(context.getInputType(), info); oldInfo = tool.setDiscoveredPathInfo(inType, cache);
else else
oldInfo = tool.clearDiscoveredPathInfo(context.getInputType()); oldInfo = tool.clearDiscoveredPathInfo(inType);
}
} else { } else {
if(info != null) if(info != null)
oldInfo = ((Configuration)context.getConfiguration()).setDiscoveredPathInfo(info); oldInfo = cfg.setDiscoveredPathInfo(cache);
else else
oldInfo = ((Configuration)context.getConfiguration()).clearDiscoveredPathInfo(); oldInfo = cfg.clearDiscoveredPathInfo();
} }
return oldInfo; return oldInfo != null ? oldInfo.fPathInfo : null;
} }
// public void removeDiscoveredInfo(IProject project, CfgInfoContext context) { // public void removeDiscoveredInfo(IProject project, CfgInfoContext context) {

View file

@ -21,6 +21,7 @@ import java.util.StringTokenizer;
import java.util.Vector; import java.util.Vector;
import org.eclipse.cdt.build.core.scannerconfig.ICfgScannerConfigBuilderInfo2Set; import org.eclipse.cdt.build.core.scannerconfig.ICfgScannerConfigBuilderInfo2Set;
import org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.PathInfoCache;
import org.eclipse.cdt.core.settings.model.CIncludePathEntry; import org.eclipse.cdt.core.settings.model.CIncludePathEntry;
import org.eclipse.cdt.core.settings.model.CLibraryPathEntry; import org.eclipse.cdt.core.settings.model.CLibraryPathEntry;
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
@ -32,7 +33,6 @@ import org.eclipse.cdt.core.settings.model.ICStorageElement;
import org.eclipse.cdt.core.settings.model.extension.CBuildData; import org.eclipse.cdt.core.settings.model.extension.CBuildData;
import org.eclipse.cdt.core.settings.model.extension.CConfigurationData; import org.eclipse.cdt.core.settings.model.extension.CConfigurationData;
import org.eclipse.cdt.core.settings.model.util.PathSettingsContainer; import org.eclipse.cdt.core.settings.model.util.PathSettingsContainer;
import org.eclipse.cdt.make.core.scannerconfig.PathInfo;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildProperty; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildProperty;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue;
@ -2761,12 +2761,12 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
// return tc.setScannerConfigBuilderInfo(info); // return tc.setScannerConfigBuilderInfo(info);
// } // }
public PathInfo setDiscoveredPathInfo(PathInfo info){ public PathInfoCache setDiscoveredPathInfo(PathInfoCache info){
ToolChain tc = (ToolChain)getRootFolderInfo().getToolChain(); ToolChain tc = (ToolChain)getRootFolderInfo().getToolChain();
return tc.setDiscoveredPathInfo(info); return tc.setDiscoveredPathInfo(info);
} }
public PathInfo getDiscoveredPathInfo(){ public PathInfoCache getDiscoveredPathInfo(){
ToolChain tc = (ToolChain)getRootFolderInfo().getToolChain(); ToolChain tc = (ToolChain)getRootFolderInfo().getToolChain();
return tc.getDiscoveredPathInfo(); return tc.getDiscoveredPathInfo();
} }
@ -2776,9 +2776,9 @@ public class Configuration extends BuildObject implements IConfiguration, IBuild
return tc.getScannerConfigDiscoveryProfileId(); return tc.getScannerConfigDiscoveryProfileId();
} }
public PathInfo clearDiscoveredPathInfo(){ public PathInfoCache clearDiscoveredPathInfo(){
ToolChain tc = (ToolChain)getRootFolderInfo().getToolChain(); ToolChain tc = (ToolChain)getRootFolderInfo().getToolChain();
return tc.setDiscoveredPathInfo(null); return tc.clearDiscoveredPathInfo();
} }
public ICfgScannerConfigBuilderInfo2Set getCfgScannerConfigInfo(){ public ICfgScannerConfigBuilderInfo2Set getCfgScannerConfigInfo(){

View file

@ -26,10 +26,10 @@ import java.util.SortedMap;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.util.Vector; import java.util.Vector;
import org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.PathInfoCache;
import org.eclipse.cdt.core.cdtvariables.CdtVariableException; import org.eclipse.cdt.core.cdtvariables.CdtVariableException;
import org.eclipse.cdt.core.settings.model.ICStorageElement; import org.eclipse.cdt.core.settings.model.ICStorageElement;
import org.eclipse.cdt.core.settings.model.extension.CLanguageData; import org.eclipse.cdt.core.settings.model.extension.CLanguageData;
import org.eclipse.cdt.make.core.scannerconfig.PathInfo;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue;
import org.eclipse.cdt.managedbuilder.core.BuildException; import org.eclipse.cdt.managedbuilder.core.BuildException;
@ -3889,16 +3889,16 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
return false; return false;
} }
public PathInfo setDiscoveredPathInfo(IInputType type, PathInfo info){ public PathInfoCache setDiscoveredPathInfo(IInputType type, PathInfoCache info){
return (PathInfo)discoveredInfoMap.put(getTypeKey(type), info); return (PathInfoCache)discoveredInfoMap.put(getTypeKey(type), info);
} }
public PathInfo getDiscoveredPathInfo(IInputType type){ public PathInfoCache getDiscoveredPathInfo(IInputType type){
return (PathInfo)discoveredInfoMap.get(getTypeKey(type)); return (PathInfoCache)discoveredInfoMap.get(getTypeKey(type));
} }
public PathInfo clearDiscoveredPathInfo(IInputType type){ public PathInfoCache clearDiscoveredPathInfo(IInputType type){
return (PathInfo)discoveredInfoMap.remove(getTypeKey(type)); return (PathInfoCache)discoveredInfoMap.remove(getTypeKey(type));
} }
public void clearAllDiscoveredInfo(){ public void clearAllDiscoveredInfo(){

View file

@ -22,9 +22,9 @@ import java.util.Set;
import java.util.SortedMap; import java.util.SortedMap;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import org.eclipse.cdt.build.internal.core.scannerconfig.CfgDiscoveredPathManager.PathInfoCache;
import org.eclipse.cdt.core.settings.model.ICStorageElement; import org.eclipse.cdt.core.settings.model.ICStorageElement;
import org.eclipse.cdt.core.settings.model.extension.CTargetPlatformData; import org.eclipse.cdt.core.settings.model.extension.CTargetPlatformData;
import org.eclipse.cdt.make.core.scannerconfig.PathInfo;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue;
import org.eclipse.cdt.managedbuilder.core.IBuildObject; import org.eclipse.cdt.managedbuilder.core.IBuildObject;
@ -116,7 +116,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
private IFolderInfo parentFolderInfo; private IFolderInfo parentFolderInfo;
private PathInfo discoveredInfo; private PathInfoCache discoveredInfo;
private Boolean isRcTypeBasedDiscovery; private Boolean isRcTypeBasedDiscovery;
@ -2601,18 +2601,18 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
isRcTypeBasedDiscovery = Boolean.valueOf(on); isRcTypeBasedDiscovery = Boolean.valueOf(on);
} }
public PathInfo setDiscoveredPathInfo(PathInfo info){ public PathInfoCache setDiscoveredPathInfo(PathInfoCache info){
PathInfo oldInfo = discoveredInfo; PathInfoCache oldInfo = discoveredInfo;
discoveredInfo = info; discoveredInfo = info;
return oldInfo; return oldInfo;
} }
public PathInfo getDiscoveredPathInfo(){ public PathInfoCache getDiscoveredPathInfo(){
return discoveredInfo; return discoveredInfo;
} }
public PathInfo clearDiscoveredPathInfo(){ public PathInfoCache clearDiscoveredPathInfo(){
PathInfo oldInfo = discoveredInfo; PathInfoCache oldInfo = discoveredInfo;
discoveredInfo = null; discoveredInfo = null;
return oldInfo; return oldInfo;
} }