From e5a941030beb22ce76e6a5dab455f53a67f6a470 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 29 Sep 2022 11:57:24 +0200 Subject: [PATCH] [Low Level FIR] fix CME in java enhancement Now all computations in FirThreadSafeCache are performed under lock ^KTIJ-23081 fixed --- .../kotlin/analysis/low/level/api/fir/caches/NullValue.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/caches/NullValue.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/caches/NullValue.kt index fe1bad1614a..930a2921661 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/caches/NullValue.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/caches/NullValue.kt @@ -19,6 +19,6 @@ internal inline fun ConcurrentMap.getOrPutWithNull key: KEY, crossinline compute: (KEY) -> Any? ): RESULT { - val value = getOrPut(key) { compute(key) ?: NullValue } + val value = computeIfAbsent(key) { compute(key) ?: NullValue } return value.nullValueToNull() } \ No newline at end of file