From cf3550b13926644953aabeb44d5a8a6d6f320983 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Mon, 2 Jul 2018 15:07:29 +0300 Subject: [PATCH] Add a number of runReadAction() in debugger (EA-120985) --- .../jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt | 2 +- .../kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt | 2 +- .../org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt | 2 +- .../kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt index 29c65674b6a..d173f6b764b 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/DebuggerClassNameProvider.kt @@ -81,7 +81,7 @@ class DebuggerClassNameProvider( * Returns classes in which the given line number *is* present. */ fun getClassesForPosition(position: SourcePosition): List = with (debugProcess) { - val lineNumber = position.line + val lineNumber = runReadAction { position.line } return doGetClassesForPosition(position) .flatMap { className -> virtualMachineProxy.classesByName(className) } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt index 503a6673418..5b2cc3c220a 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinFrameExtraVariablesProvider.kt @@ -43,7 +43,7 @@ import java.util.* class KotlinFrameExtraVariablesProvider : FrameExtraVariablesProvider { override fun isAvailable(sourcePosition: SourcePosition, evalContext: EvaluationContext): Boolean { - if (sourcePosition.line < 0) return false + if (runReadAction { sourcePosition.line } < 0) return false return sourcePosition.file.fileType == KotlinFileType.INSTANCE && DebuggerSettings.getInstance().AUTO_VARIABLES_MODE } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt index 0faf001d068..36b5a336c5c 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/KotlinPositionManager.kt @@ -304,7 +304,7 @@ class KotlinPositionManager(private val myDebugProcess: DebugProcess) : MultiReq if (psiFile is ClsFileImpl) { val decompiledPsiFile = psiFile.readAction { it.decompiledPsiFile } - if (decompiledPsiFile is KtClsFile && sourcePosition.line == -1) { + if (decompiledPsiFile is KtClsFile && runReadAction { sourcePosition.line } == -1) { val className = JvmFileClassUtil.getFileClassInternalName(decompiledPsiFile) return myDebugProcess.virtualMachineProxy.classesByName(className) } diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt index 62ad948d8de..0a6f39ad012 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/debugger/evaluate/KotlinEvaluationBuilder.kt @@ -181,7 +181,7 @@ class KotlinEvaluator(val codeFragment: KtCodeFragment, val sourcePosition: Sour val text = runReadAction { codeFragment.context?.text ?: "null" } val attachments = arrayOf(attachmentByPsiFile(sourcePosition.file), attachmentByPsiFile(codeFragment), - Attachment("breakpoint.info", "line: ${sourcePosition.line}"), + Attachment("breakpoint.info", "line: ${runReadAction { sourcePosition.line }}"), Attachment("context.info", text)) LOG.error(LogMessageEx.createEvent(