mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 14:42:11 +02:00
Bug 411605: Improved fix for regression in ResourceLookup, such that
project description is loaded less often.
This commit is contained in:
parent
11c76639db
commit
ecdbe69720
1 changed files with 11 additions and 13 deletions
|
@ -115,31 +115,29 @@ public class ResourceLookup {
|
||||||
* reaching the next for-loop - that loop is expensive as it might cause the loading of unnecessary
|
* reaching the next for-loop - that loop is expensive as it might cause the loading of unnecessary
|
||||||
* project-descriptions.
|
* project-descriptions.
|
||||||
*/
|
*/
|
||||||
|
int filesInPreferredProject= 0;
|
||||||
if (preferredProject != null) {
|
if (preferredProject != null) {
|
||||||
for (IFile file : files) {
|
for (IFile file : files) {
|
||||||
if (file.getProject().equals(preferredProject) && file.isAccessible()) {
|
if (file.getProject().equals(preferredProject) && file.isAccessible()) {
|
||||||
if (best != null) {
|
filesInPreferredProject++;
|
||||||
// At least two accessible files in preferred project.
|
|
||||||
best = null;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
best= file;
|
best= file;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// One accessible file in preferred project.
|
// One accessible file in preferred project.
|
||||||
if(best != null)
|
if (filesInPreferredProject == 1)
|
||||||
return best;
|
return best;
|
||||||
|
|
||||||
int bestRelevance= -1;
|
int bestRelevance= -1;
|
||||||
|
|
||||||
for (IFile file : files) {
|
for (IFile file : files) {
|
||||||
int relevance= FileRelevance.getRelevance(file, preferredProject, PathCanonicalizationStrategy.resolvesSymbolicLinks(), originalLocation);
|
if (filesInPreferredProject==0 || file.getProject().equals(preferredProject)) {
|
||||||
if (best == null || relevance > bestRelevance ||
|
int relevance= FileRelevance.getRelevance(file, preferredProject, PathCanonicalizationStrategy.resolvesSymbolicLinks(), originalLocation);
|
||||||
(relevance == bestRelevance &&
|
if (best == null || relevance > bestRelevance ||
|
||||||
best.getFullPath().toString().compareTo(file.getFullPath().toString()) > 0)) {
|
(relevance == bestRelevance &&
|
||||||
bestRelevance= relevance;
|
best.getFullPath().toString().compareTo(file.getFullPath().toString()) > 0)) {
|
||||||
best= file;
|
bestRelevance= relevance;
|
||||||
|
best= file;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return best;
|
return best;
|
||||||
|
|
Loading…
Add table
Reference in a new issue