Remove usage of deprecated ConcurrentWeakFactoryMap in debugger (KT-25667)

This commit is contained in:
Yan Zhulanow
2018-09-19 18:25:29 +03:00
parent e3f6d183fa
commit f36447aab8
2 changed files with 8 additions and 12 deletions
@@ -26,8 +26,7 @@ import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.openapi.roots.ProjectFileIndex
import com.intellij.openapi.vfs.VirtualFile import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.search.GlobalSearchScope import com.intellij.psi.search.GlobalSearchScope
import com.intellij.util.containers.ConcurrentWeakFactoryMap import com.intellij.util.containers.ConcurrentFactoryMap
import com.intellij.util.containers.ContainerUtil
import com.sun.jdi.Location import com.sun.jdi.Location
import com.sun.jdi.ReferenceType import com.sun.jdi.ReferenceType
import org.jetbrains.kotlin.codegen.inline.API import org.jetbrains.kotlin.codegen.inline.API
@@ -110,17 +109,14 @@ fun getLastLineNumberForLocation(location: Location, project: Project, searchSco
return lineMapping.values.firstOrNull { it.contains(lineNumber) }?.last() return lineMapping.values.firstOrNull { it.contains(lineNumber) }?.last()
} }
class WeakBytecodeDebugInfoStorage : ConcurrentWeakFactoryMap<BinaryCacheKey, BytecodeDebugInfo?>() { fun createWeakBytecodeDebugInfoStorage(): ConcurrentMap<BinaryCacheKey, BytecodeDebugInfo?> {
override fun create(key: BinaryCacheKey): BytecodeDebugInfo? { return ConcurrentFactoryMap.createWeakMap<BinaryCacheKey, BytecodeDebugInfo?> { key ->
val bytes = readClassFileImpl(key.project, key.jvmName, key.file) ?: return null val bytes = readClassFileImpl(key.project, key.jvmName, key.file) ?: return@createWeakMap null
val smapData = readDebugInfo(bytes) val smapData = readDebugInfo(bytes)
val lineNumberMapping = readLineNumberTableMapping(bytes) val lineNumberMapping = readLineNumberTableMapping(bytes)
return BytecodeDebugInfo(smapData, lineNumberMapping) BytecodeDebugInfo(smapData, lineNumberMapping)
}
override fun createMap(): ConcurrentMap<BinaryCacheKey, BytecodeDebugInfo?> {
return ContainerUtil.createConcurrentWeakKeyWeakValueMap()
} }
} }
@@ -41,7 +41,7 @@ import org.jetbrains.kotlin.idea.caches.resolve.analyzeAndGetResult
import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithAllCompilerChecks import org.jetbrains.kotlin.idea.caches.resolve.analyzeWithAllCompilerChecks
import org.jetbrains.kotlin.idea.debugger.BinaryCacheKey import org.jetbrains.kotlin.idea.debugger.BinaryCacheKey
import org.jetbrains.kotlin.idea.debugger.BytecodeDebugInfo import org.jetbrains.kotlin.idea.debugger.BytecodeDebugInfo
import org.jetbrains.kotlin.idea.debugger.WeakBytecodeDebugInfoStorage import org.jetbrains.kotlin.idea.debugger.createWeakBytecodeDebugInfoStorage
import org.jetbrains.kotlin.idea.debugger.evaluate.classLoading.ClassToLoad import org.jetbrains.kotlin.idea.debugger.evaluate.classLoading.ClassToLoad
import org.jetbrains.kotlin.idea.runInReadActionWithWriteActionPriorityWithPCE import org.jetbrains.kotlin.idea.runInReadActionWithWriteActionPriorityWithPCE
import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runReadAction
@@ -78,8 +78,8 @@ class KotlinDebuggerCaches(project: Project) {
private val debugInfoCache = CachedValuesManager.getManager(project).createCachedValue( private val debugInfoCache = CachedValuesManager.getManager(project).createCachedValue(
{ {
CachedValueProvider.Result<WeakBytecodeDebugInfoStorage>( CachedValueProvider.Result(
WeakBytecodeDebugInfoStorage(), createWeakBytecodeDebugInfoStorage(),
PsiModificationTracker.MODIFICATION_COUNT) PsiModificationTracker.MODIFICATION_COUNT)
}, false) }, false)