Remove usage of deprecated ConcurrentWeakFactoryMap in debugger (KT-25667)
This commit is contained in:
+5
-9
@@ -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()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user