From 3cd85a25e4e83fa1bbdd55a1bc6123d0d5809730 Mon Sep 17 00:00:00 2001 From: Alexey Tsvetkov Date: Sat, 17 Oct 2015 00:54:49 +0300 Subject: [PATCH] Generate ACC_NATIVE for external --- .../src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java | 3 +-- .../backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java index 4ecb255d932..2af194299c1 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AnnotationCodegen.java @@ -63,8 +63,7 @@ public abstract class AnnotationCodegen { public static final List METHOD_FLAGS = Arrays.asList( new JvmFlagAnnotation("kotlin.jvm.Strictfp", Opcodes.ACC_STRICT), new JvmFlagAnnotation("kotlin.jvm.Synchronized", Opcodes.ACC_SYNCHRONIZED), - new JvmFlagAnnotation("kotlin.jvm.native", Opcodes.ACC_NATIVE), - new JvmFlagAnnotation("kotlin.external", Opcodes.ACC_NATIVE) + new JvmFlagAnnotation("kotlin.jvm.native", Opcodes.ACC_NATIVE) ); private static final AnnotationVisitor NO_ANNOTATION_VISITOR = new AnnotationVisitor(Opcodes.ASM5) {}; diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java index 978c35ed566..dac28a7f51f 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/AsmUtil.java @@ -192,6 +192,10 @@ public class AsmUtil { } } + if (functionDescriptor.getOriginal().isExternal()) { + flags |= Opcodes.ACC_NATIVE; + } + if (AnnotationUtilKt.isPlatformStaticInCompanionObject(functionDescriptor)) { // Native method will be a member of the class, the companion object method will be delegated to it flags &= ~Opcodes.ACC_NATIVE;