From 43e79035e93404da8dd2f7972bdc38268621f4f8 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Tue, 30 Oct 2018 10:58:39 +0100 Subject: [PATCH] Revert "Fix backend for working with asm-7.0 beta (KT-27540, KT-27774)" Original commit that cause this change was removed in asm 7.0 release --- .../org/jetbrains/kotlin/codegen/AsmUtil.java | 21 ------------------- .../inline/AnonymousObjectTransformer.kt | 1 - .../codegen/inline/DeferredMethodVisitor.kt | 2 -- .../kotlin/codegen/inline/InlineCodegen.kt | 1 - .../inline/InlineCodegenForDefaultBody.kt | 2 -- .../kotlin/codegen/inline/MethodInliner.kt | 3 --- 6 files changed, 30 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index bed92d14eaf..96cc1037c8d 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -51,10 +51,6 @@ import org.jetbrains.kotlin.types.SimpleType; import org.jetbrains.org.objectweb.asm.*; import org.jetbrains.org.objectweb.asm.commons.InstructionAdapter; import org.jetbrains.org.objectweb.asm.commons.Method; -import org.jetbrains.org.objectweb.asm.tree.AbstractInsnNode; -import org.jetbrains.org.objectweb.asm.tree.InsnList; -import org.jetbrains.org.objectweb.asm.tree.LabelNode; -import org.jetbrains.org.objectweb.asm.tree.MethodNode; import java.util.ArrayList; import java.util.List; @@ -1233,21 +1229,4 @@ public class AsmUtil { //Trait always should have this descriptor return kind != OwnerKind.DEFAULT_IMPLS && isStaticMethod(kind, descriptor) ? 0 : 1; } - - public static void resetLabelInfos(@NotNull MethodNode methodNode) { - //noinspection ConstantConditions - if (Opcodes.API_VERSION <= Opcodes.ASM6) { - return; - } - - InsnList instructions = methodNode.instructions; - for (AbstractInsnNode inst = instructions.getFirst(); inst != null; inst = inst.getNext()) { - if (inst instanceof LabelNode) { - Label label = ((LabelNode) inst).getLabel(); - if (label != null) { - label.info = null; - } - } - } - } } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt index bae6bb8f40d..ecbbc732ab4 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt @@ -407,7 +407,6 @@ class AnonymousObjectTransformer( val first = intermediateMethodNode.instructions.first val oldStartLabel = (first as? LabelNode)?.label - AsmUtil.resetLabelInfos(intermediateMethodNode) intermediateMethodNode.accept(object : MethodBodyVisitor(capturedFieldInitializer) { override fun visitLocalVariable( name: String, desc: String, signature: String?, start: Label, end: Label, index: Int diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/DeferredMethodVisitor.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/DeferredMethodVisitor.kt index 3a2447adcd1..6ff841d43c2 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/DeferredMethodVisitor.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/DeferredMethodVisitor.kt @@ -16,7 +16,6 @@ package org.jetbrains.kotlin.codegen.inline -import org.jetbrains.kotlin.codegen.AsmUtil import org.jetbrains.org.objectweb.asm.MethodVisitor import org.jetbrains.org.objectweb.asm.tree.MethodNode @@ -28,7 +27,6 @@ class DeferredMethodVisitor( override fun visitEnd() { super.visitEnd() val resultVisitor = resultNode() - AsmUtil.resetLabelInfos(intermediate) intermediate.accept(resultVisitor) } } \ No newline at end of file diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt index a0751726c4c..232d86c5b25 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegen.kt @@ -290,7 +290,6 @@ abstract class InlineCodegen( removeFinallyMarkers(adapter) } - AsmUtil.resetLabelInfos(adapter) adapter.accept(MethodBodyVisitor(codegen.v)) if (shouldSpillStack) { diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegenForDefaultBody.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegenForDefaultBody.kt index afcc3398f13..5146af98fb6 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegenForDefaultBody.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InlineCodegenForDefaultBody.kt @@ -70,7 +70,6 @@ class InlineCodegenForDefaultBody( val argsSize = (Type.getArgumentsAndReturnSizes(jvmSignature.asmMethod.descriptor) ushr 2) - if (callableMethod.isStaticCall()) 1 else 0 - AsmUtil.resetLabelInfos(node) node.accept(object : InlineAdapter(transformedMethod, 0, childSourceMapper) { override fun visitLocalVariable(name: String, desc: String, signature: String?, start: Label, end: Label, index: Int) { val startLabel = if (index < argsSize) methodStartLabel else start @@ -78,7 +77,6 @@ class InlineCodegenForDefaultBody( } }) - AsmUtil.resetLabelInfos(transformedMethod) transformedMethod.accept(MethodBodyVisitor(codegen.visitor)) } diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt index 9a932e18b1d..f633fc782d8 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/MethodInliner.kt @@ -131,9 +131,7 @@ class MethodInliner( } processReturns(resultNode, labelOwner, remapReturn, end) - //flush transformed node to output - AsmUtil.resetLabelInfos(resultNode) resultNode.accept(MethodBodyVisitor(adapter, true)) sourceMapper.endMapping() @@ -391,7 +389,6 @@ class MethodInliner( } } - AsmUtil.resetLabelInfos(node) node.accept(lambdaInliner) return resultNode