diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt index b16cffa0fb0..50644a2a981 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastAnalyzer.kt @@ -17,15 +17,15 @@ import org.jetbrains.org.objectweb.asm.tree.analysis.Value abstract class FastAnalyzer, F : Frame>( private val owner: String, - protected val method: MethodNode, + private val method: MethodNode, private val interpreter: I, private val pruneExceptionEdges: Boolean, ) { private val nInsns = method.instructions.size() private val frames: Array?> = arrayOfNulls(nInsns) - protected val handlers: Array?> = arrayOfNulls(nInsns) - protected val isTcbStart = BooleanArray(nInsns) + private val handlers: Array?> = arrayOfNulls(nInsns) + private val isTcbStart = BooleanArray(nInsns) private val isMergeNode = findMergeNodes(method) private val queued = BooleanArray(nInsns) @@ -39,6 +39,11 @@ abstract class FastAnalyzer, F : Frame>( checkAssertions() computeExceptionHandlers(method) + + for (tcb in method.tryCatchBlocks) { + isTcbStart[tcb.start.indexOf() + 1] = true + } + beforeAnalyze() analyzeMainLoop() diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt index 3449d0602c8..67dda9e5bfe 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/common/FastMethodAnalyzer.kt @@ -50,10 +50,4 @@ class FastMethodAnalyzer private val createFrame: (Int, Int) -> Frame = { nLocals, nStack -> Frame(nLocals, nStack) } ) : FastAnalyzer, Frame>(owner, method, interpreter, pruneExceptionEdges) { override fun newFrame(nLocals: Int, nStack: Int): Frame = createFrame(nLocals, nStack) - - override fun beforeAnalyze() { - for (tcb in method.tryCatchBlocks) { - isTcbStart[tcb.start.indexOf() + 1] = true - } - } }