From 69e41e19e7b401737a742820592ce4bd3deb0658 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Mon, 6 Feb 2023 17:06:45 +0100 Subject: [PATCH] [Analysis API] fix possible leaks of FirDeclarations from cache keys in KtSymbolByFirBuilder If some FirDeclarations is inaccessible then there is no reason to store KtSymbol for it ^KTIJ-22749 --- .../jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index 1a5e3844130..461198a9e0b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -608,7 +608,7 @@ internal class KtSymbolByFirBuilder constructor( private class BuilderCache { - private val cache = ContainerUtil.createConcurrentSoftMap() + private val cache = ContainerUtil.createWeakKeySoftValueMap() inline fun cache(key: From, calculation: () -> S): S { val value = cache.getOrPut(key, calculation)