From 317f3cf47022b95bc62150da08ef5e55beafa287 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 23 Jul 2019 19:48:42 +0200 Subject: [PATCH] Revert projectIndexableFilesIfCached as it's actually irrelevant for Rider's perf problems (IDEA-CR-49893) GitOrigin-RevId: 6b16165148d1898fc3a10c133ffe6821bf9222da --- .../util/indexing/FileBasedIndexImpl.java | 23 +++++-------------- .../util/indexing/FindSymbolParameters.java | 4 ++-- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index fe1e0aca651b..23862e1b101e 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -1064,14 +1064,15 @@ public final class FileBasedIndexImpl extends FileBasedIndex implements Disposab if (project == null || myUpdatingFiles.get() > 0) return null; if (myProjectsBeingUpdated.contains(project)) return null; - ProjectIndexableFilesFilter cachedFilter = projectIndexableFilesIfCached(project); - if (cachedFilter != null) return cachedFilter; + SoftReference reference = project.getUserData(ourProjectFilesSetKey); + ProjectIndexableFilesFilter data = com.intellij.reference.SoftReference.dereference(reference); + int currentFileModCount = myFilesModCount.get(); + if (data != null && data.myModificationCount == currentFileModCount) return data; if (myCalcIndexableFilesLock.tryLock()) { // make best effort for calculating filter try { - int currentFileModCount = myFilesModCount.get(); - SoftReference reference = project.getUserData(ourProjectFilesSetKey); - ProjectIndexableFilesFilter data = com.intellij.reference.SoftReference.dereference(reference); + reference = project.getUserData(ourProjectFilesSetKey); + data = com.intellij.reference.SoftReference.dereference(reference); if (data != null && data.myModificationCount == currentFileModCount) { return data; } @@ -1101,18 +1102,6 @@ public final class FileBasedIndexImpl extends FileBasedIndex implements Disposab return null; // ok, no filtering } - @Nullable - public ProjectIndexableFilesFilter projectIndexableFilesIfCached(@Nullable Project project) { - if (project == null || myUpdatingFiles.get() > 0) return null; - if (myProjectsBeingUpdated.contains(project)) return null; - - SoftReference reference = project.getUserData(ourProjectFilesSetKey); - ProjectIndexableFilesFilter data = com.intellij.reference.SoftReference.dereference(reference); - int currentFileModCount = myFilesModCount.get(); - if (data != null && data.myModificationCount == currentFileModCount) return data; - return null; - } - @Nullable private TIntHashSet collectFileIdsContainingAllKeys(@NotNull final ID indexId, @NotNull final Collection dataKeys, diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FindSymbolParameters.java b/platform/lang-impl/src/com/intellij/util/indexing/FindSymbolParameters.java index 8909c738a617..06a3c22357a3 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FindSymbolParameters.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FindSymbolParameters.java @@ -70,7 +70,7 @@ public class FindSymbolParameters { public static FindSymbolParameters wrap(@NotNull String pattern, @NotNull Project project, boolean searchInLibraries) { return new FindSymbolParameters(pattern, pattern, searchScopeFor(project, searchInLibraries), - ((FileBasedIndexImpl) FileBasedIndex.getInstance()).projectIndexableFilesIfCached(project)); + ((FileBasedIndexImpl) FileBasedIndex.getInstance()).projectIndexableFiles(project)); } public static FindSymbolParameters wrap(@NotNull String pattern, @NotNull GlobalSearchScope scope) { @@ -79,7 +79,7 @@ public class FindSymbolParameters { public static FindSymbolParameters simple(@NotNull Project project, boolean searchInLibraries) { return new FindSymbolParameters("", "", searchScopeFor(project, searchInLibraries), - ((FileBasedIndexImpl) FileBasedIndex.getInstance()).projectIndexableFilesIfCached(project)); + ((FileBasedIndexImpl) FileBasedIndex.getInstance()).projectIndexableFiles(project)); } @NotNull