From d7faff7538a313c5d3090ad5b0a485869d4d5036 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Mon, 26 Aug 2013 13:55:38 +0200 Subject: [PATCH] Bug 411605: Fix for regression in resource lookup. --- .../internal/core/resources/ResourceLookup.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/ResourceLookup.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/ResourceLookup.java index 3cea6a25454..6598ae9b5bf 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/ResourceLookup.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/resources/ResourceLookup.java @@ -115,22 +115,25 @@ public class ResourceLookup { * reaching the next for-loop - that loop is expensive as it might cause the loading of unnecessary * project-descriptions. */ - if(preferredProject != null) { - for (int i = 0; i < files.length; i++) { - IFile file = files[i]; - if (file.getProject().equals(preferredProject) && file.isAccessible() && - (best == null || best.getFullPath().toString().compareTo(file.getFullPath().toString()) > 0)) { + if (preferredProject != null) { + for (IFile file : files) { + if (file.getProject().equals(preferredProject) && file.isAccessible()) { + if (best != null) { + // At least two accessible files in preferred project. + best = null; + break; + } best= file; } } } + // One accessible file in preferred project. if(best != null) return best; int bestRelevance= -1; - for (int i = 0; i < files.length; i++) { - IFile file = files[i]; + for (IFile file : files) { int relevance= FileRelevance.getRelevance(file, preferredProject); if (best == null || relevance > bestRelevance || (relevance == bestRelevance &&