From 9983abea4cfab685d4a87a1454f8af43a1230b95 Mon Sep 17 00:00:00 2001 From: Marco Pennekamp Date: Wed, 24 May 2023 14:16:11 +0200 Subject: [PATCH] [AA] Don't use a weak-value map in `KtFirAnalysisSessionProvider` - The values stored in `CachedValue`s are already soft. We don't gain any benefit from making the `CachedValue` a weak reference as well. --- .../kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt index 246e7de8ab5..723470af918 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtFirAnalysisSessionProvider.kt @@ -11,7 +11,7 @@ import com.intellij.psi.util.CachedValue import com.intellij.psi.util.CachedValueProvider import com.intellij.psi.util.CachedValuesManager import com.intellij.util.CachedValueBase -import com.intellij.util.containers.CollectionFactory +import java.util.concurrent.ConcurrentHashMap import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeToken @@ -26,8 +26,7 @@ import kotlin.reflect.KClass @OptIn(KtAnalysisApiInternals::class) class KtFirAnalysisSessionProvider(project: Project) : KtAnalysisSessionProvider(project) { - private val cache: ConcurrentMap>, CachedValue> = - CollectionFactory.createConcurrentWeakValueMap() + private val cache: ConcurrentMap>, CachedValue> = ConcurrentHashMap() init { LowMemoryWatcher.register(::clearCaches, project)