From 88622ef575c021ccc5840ecff31ea203bf95df03 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Thu, 2 Nov 2017 18:19:15 +0100 Subject: [PATCH] SSR: track start of transaction so callers can be simplified --- .../compiler/FindInFilesOptimizingSearchHelper.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/compiler/FindInFilesOptimizingSearchHelper.java b/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/compiler/FindInFilesOptimizingSearchHelper.java index 8c280dcafd84..130e4083a492 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/compiler/FindInFilesOptimizingSearchHelper.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/impl/matcher/compiler/FindInFilesOptimizingSearchHelper.java @@ -24,6 +24,8 @@ class FindInFilesOptimizingSearchHelper extends OptimizingSearchHelperBase { private final SearchScope myScope; private final boolean myCaseSensitive; + private boolean myTransactionStarted = false; + FindInFilesOptimizingSearchHelper(SearchScope scope, boolean caseSensitive, Project project) { myScope = scope; myCaseSensitive = caseSensitive; @@ -53,6 +55,7 @@ class FindInFilesOptimizingSearchHelper extends OptimizingSearchHelperBase { @Override protected void doAddSearchWordInCode(final String refname) { + myTransactionStarted = true; CacheManager.SERVICE.getInstance(myProject).processFilesWithWord(myFileProcessor, refname, (short)(UsageSearchContext.IN_CODE | UsageSearchContext.IN_PLAIN_TEXT), (GlobalSearchScope)myScope, myCaseSensitive); @@ -60,24 +63,29 @@ class FindInFilesOptimizingSearchHelper extends OptimizingSearchHelperBase { @Override protected void doAddSearchWordInText(final String refname) { + myTransactionStarted = true; CacheManager.SERVICE.getInstance(myProject).processFilesWithWord(myFileProcessor, refname, UsageSearchContext.IN_PLAIN_TEXT, (GlobalSearchScope)myScope, myCaseSensitive); } @Override protected void doAddSearchWordInComments(final String refname) { + myTransactionStarted = true; CacheManager.SERVICE.getInstance(myProject).processFilesWithWord(myFileProcessor, refname, UsageSearchContext.IN_COMMENTS, (GlobalSearchScope)myScope, myCaseSensitive); } @Override protected void doAddSearchWordInLiterals(final String refname) { + myTransactionStarted = true; CacheManager.SERVICE.getInstance(myProject).processFilesWithWord(myFileProcessor, refname, UsageSearchContext.IN_STRINGS, (GlobalSearchScope)myScope, myCaseSensitive); } @Override public void endTransaction() { + if (!myTransactionStarted) return; + myTransactionStarted = false; super.endTransaction(); final THashSet map = filesToScan; if (!map.isEmpty()) map.clear();