diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/LabelNormalizationMethodTransformer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/LabelNormalizationMethodTransformer.kt index fcab0e02d0a..51462cb42bb 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/LabelNormalizationMethodTransformer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/optimization/LabelNormalizationMethodTransformer.kt @@ -30,7 +30,7 @@ class LabelNormalizationMethodTransformer : MethodTransformer() { private class TransformerForMethod(val methodNode: MethodNode) { val instructions = methodNode.instructions - val newLabelNodes = SmartIdentityTable() + val newLabelNodes = SmartIdentityTable() fun transform() { if (rewriteLabelInstructions()) { @@ -48,11 +48,11 @@ class LabelNormalizationMethodTransformer : MethodTransformer() { if (thisNode is LabelNode) { val prevNode = thisNode.previous if (prevNode is LabelNode) { - newLabelNodes[thisNode.label] = prevNode + newLabelNodes[thisNode] = prevNode removedAnyLabels = true thisNode = instructions.removeNodeGetNext(thisNode) } else { - newLabelNodes[thisNode.label] = thisNode + newLabelNodes[thisNode] = thisNode thisNode = thisNode.next } } else { @@ -145,12 +145,12 @@ class LabelNormalizationMethodTransformer : MethodTransformer() { } private fun getNew(oldLabelNode: LabelNode): LabelNode { - return newLabelNodes[oldLabelNode.label] + return newLabelNodes[oldLabelNode] ?: throw IllegalStateException("Label wasn't found during iterating through instructions") } private fun getNewOrOld(oldLabelNode: LabelNode): LabelNode = - newLabelNodes[oldLabelNode.label] ?: oldLabelNode + newLabelNodes[oldLabelNode] ?: oldLabelNode } }