From 80fa0c19300de98b570681675f1706d1f167d22e Mon Sep 17 00:00:00 2001 From: Alena Laskavaia Date: Wed, 7 Apr 2010 01:24:11 +0000 Subject: [PATCH] [307825] - fixed to support linked resources --- .../codan/core/cxx/model/AbstractIndexAstChecker.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/codan/org.eclipse.cdt.codan.core.cxx/src/org/eclipse/cdt/codan/core/cxx/model/AbstractIndexAstChecker.java b/codan/org.eclipse.cdt.codan.core.cxx/src/org/eclipse/cdt/codan/core/cxx/model/AbstractIndexAstChecker.java index 0eeac066ba7..f6786cf5435 100644 --- a/codan/org.eclipse.cdt.codan.core.cxx/src/org/eclipse/cdt/codan/core/cxx/model/AbstractIndexAstChecker.java +++ b/codan/org.eclipse.cdt.codan.core.cxx/src/org/eclipse/cdt/codan/core/cxx/model/AbstractIndexAstChecker.java @@ -23,7 +23,9 @@ import org.eclipse.cdt.core.index.IIndex; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICElement; import org.eclipse.cdt.core.model.ITranslationUnit; +import org.eclipse.cdt.internal.core.resources.ResourceLookup; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; @@ -43,6 +45,9 @@ public abstract class AbstractIndexAstChecker extends AbstractChecker implements protected IFile getFile() { return file; } + protected IProject getProject() { + return file==null?null:file.getProject(); + } void processFile(IFile file) throws CoreException, InterruptedException { // create translation unit and access index @@ -81,11 +86,11 @@ public abstract class AbstractIndexAstChecker extends AbstractChecker implements return true; } + @SuppressWarnings("restriction") public void reportProblem(String id, IASTNode astNode, Object... args) { IASTFileLocation astLocation = astNode.getFileLocation(); IPath location = new Path(astLocation.getFileName()); - IFile astFile = ResourcesPlugin.getWorkspace().getRoot() - .getFileForLocation(location); + IFile astFile = ResourceLookup.selectFileForLocation(location, getProject()); if (astFile == null) { astFile = file; }