From f86998ba3aeb4458c18f4cbe977f4ad99ec1bd1d Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 25 Apr 2016 19:28:51 +0200 Subject: [PATCH] let LowLevelSearchUtil cache texts by identity: equals is too expensive for long file texts, which are equal but not same (happens when typing a letter and backspacing it) --- .../src/com/intellij/psi/impl/search/LowLevelSearchUtil.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/platform/indexing-impl/src/com/intellij/psi/impl/search/LowLevelSearchUtil.java b/platform/indexing-impl/src/com/intellij/psi/impl/search/LowLevelSearchUtil.java index a71bb105df3c..b796c46432d9 100644 --- a/platform/indexing-impl/src/com/intellij/psi/impl/search/LowLevelSearchUtil.java +++ b/platform/indexing-impl/src/com/intellij/psi/impl/search/LowLevelSearchUtil.java @@ -229,7 +229,8 @@ public class LowLevelSearchUtil { LOG.error(msg); } - private static final ConcurrentMap> cache = ContainerUtil.createConcurrentWeakMap(); + private static final ConcurrentMap> cache = + ContainerUtil.createConcurrentWeakMap(ContainerUtil.identityStrategy()); public static boolean processTextOccurrences(@NotNull CharSequence text, int startOffset, int endOffset,