From 577223035796854473b5181aec25beb725b8888f Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 30 Sep 2022 00:50:42 +0200 Subject: [PATCH] [Low Level FIR] fix memory leak via use-site use session ^KTIJ-22749 --- .../analysis/low/level/api/fir/LLFirResolveStateService.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt index c8c66a97b0e..b4a8b3d7df4 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/LLFirResolveStateService.kt @@ -19,14 +19,16 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.state.LLFirSourceResolveS import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries import org.jetbrains.kotlin.analysis.project.structure.* import org.jetbrains.kotlin.analysis.providers.createProjectWideOutOfBlockModificationTracker -import org.jetbrains.kotlin.analysis.utils.caches.strongCachedValue +import org.jetbrains.kotlin.analysis.utils.caches.getValue +import org.jetbrains.kotlin.analysis.utils.caches.softCachedValue import java.util.concurrent.locks.ReentrantReadWriteLock import kotlin.concurrent.withLock internal class LLFirResolveSessionService(project: Project) { private val sessionProviderStorage = LLFirSessionProviderStorage(project) - private val stateCache by strongCachedValue( + private val stateCache by softCachedValue( + project, project.createProjectWideOutOfBlockModificationTracker(), ProjectRootModificationTracker.getInstance(project), ) {