Align method handle type with the runtime - Remove temporary hack in invoke-custom test due to runtime bug since an updated runtime fix it. Change-Id: I5424bacf7ca0e292974df7e81b35dea51d8a9b51
diff --git a/src/test/examplesAndroidO/invokecustom/InvokeCustom.java b/src/test/examplesAndroidO/invokecustom/InvokeCustom.java index 0d4d5c5..449d426 100644 --- a/src/test/examplesAndroidO/invokecustom/InvokeCustom.java +++ b/src/test/examplesAndroidO/invokecustom/InvokeCustom.java
@@ -102,74 +102,15 @@ System.out.println("targetMethodTest4"); } - public static CallSite bsmCreateCallSite( - MethodHandles.Lookup caller, String name, MethodType type, MethodHandle mh) - throws Throwable { - // Using mh to create the call site fails when run on Art. See b/36957105 for details. - final MethodHandle targetMH = MethodHandles.lookup().findSpecial(Super.class, - "targetMethodTest5", MethodType.methodType(void.class), InvokeCustom.class); - return new ConstantCallSite(targetMH); - } - - public static CallSite bsmCreateCallCallingtargetMethodTest6( - MethodHandles.Lookup caller, String name, MethodType type, MethodHandle mh) - throws Throwable { - // Using mh to create the call site fails when run on Art. See b/36957105 for details. - final MethodHandle targetMH = - MethodHandles.lookup().findVirtual( - I.class, "targetMethodTest6", MethodType.methodType(void.class)); - return new ConstantCallSite(targetMH); - } - - public static CallSite bsmCreateCallCallingtargetMethodTest7( - MethodHandles.Lookup caller, String name, MethodType type, MethodHandle mh) - throws Throwable { - // Using mh to create the call site fails when run on Art. See b/36957105 for details. - final MethodHandle targetMH = - MethodHandles.lookup().findVirtual( - J.class, "targetMethodTest7", MethodType.methodType(void.class)); - return new ConstantCallSite(targetMH); - } - public void targetMethodTest8() { System.out.println("targetMethodTest8 from InvokeCustom"); } - public static CallSite bsmCreateCallCallingtargetMethodTest8( - MethodHandles.Lookup caller, String name, MethodType type, MethodHandle mh) - throws Throwable { - // Using mh to create the call site fails when run on Art. See b/36957105 for details. - final MethodHandle targetMH = - MethodHandles.lookup().findVirtual( - J.class, "targetMethodTest8", MethodType.methodType(void.class)); - return new ConstantCallSite(targetMH); - } - - public static CallSite bsmCreateCallCallingtargetMethodTest9( - MethodHandles.Lookup caller, String name, MethodType type, MethodHandle mh) - throws Throwable { - // Using mh to create the call site fails when run on Art. See b/36957105 for details. - final MethodHandle targetMH = - MethodHandles.lookup().findVirtual( - InvokeCustom.class, "targetMethodTest9", MethodType.methodType(void.class)); - return new ConstantCallSite(targetMH); - } - public void targetMethodTest10() { System.out.println("targetMethodTest10 from InvokeCustom"); } - public static CallSite bsmCreateCallCallingtargetMethodTest10( - MethodHandles.Lookup caller, String name, MethodType type, MethodHandle mh) - throws Throwable { - // Using mh to create the call site fails when run on Art. See b/36957105 for details. - final MethodHandle targetMH = - MethodHandles.lookup().findVirtual( - InvokeCustom.class, "targetMethodTest10", MethodType.methodType(void.class)); - return new ConstantCallSite(targetMH); - } - - public static CallSite bsmCreateCallCallingtargetMethod( + public static CallSite bsmCreateCallSite( MethodHandles.Lookup caller, String name, MethodType type, MethodHandle mh) throws Throwable { return new ConstantCallSite(mh);
diff --git a/src/test/examplesAndroidO/invokecustom/TestGenerator.java b/src/test/examplesAndroidO/invokecustom/TestGenerator.java index 883106f..5c550e9 100644 --- a/src/test/examplesAndroidO/invokecustom/TestGenerator.java +++ b/src/test/examplesAndroidO/invokecustom/TestGenerator.java
@@ -189,7 +189,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethodTest6", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitTypeInsn(Opcodes.NEW, Type.getInternalName(InvokeCustom.class)); mv.visitInsn(Opcodes.DUP); mv.visitMethodInsn( @@ -212,7 +212,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethodTest7", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitTypeInsn(Opcodes.NEW, Type.getInternalName(InvokeCustom.class)); mv.visitInsn(Opcodes.DUP); mv.visitMethodInsn( @@ -235,7 +235,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethodTest8", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitTypeInsn(Opcodes.NEW, Type.getInternalName(InvokeCustom.class)); mv.visitInsn(Opcodes.DUP); mv.visitMethodInsn( @@ -258,7 +258,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethodTest9", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitTypeInsn(Opcodes.NEW, Type.getInternalName(InvokeCustom.class)); mv.visitInsn(Opcodes.DUP); mv.visitMethodInsn( @@ -281,7 +281,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethodTest10", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitTypeInsn(Opcodes.NEW, Type.getInternalName(InvokeCustom.class)); mv.visitInsn(Opcodes.DUP); mv.visitMethodInsn( @@ -303,7 +303,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethod", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", @@ -330,7 +330,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethod", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitLdcInsn("Write static field"); mv.visitInvokeDynamicInsn("staticField1", "(Ljava/lang/String;)V", bootstrap, new Handle(Opcodes.H_PUTSTATIC, Type.getInternalName(InvokeCustom.class), @@ -361,7 +361,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethod", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", @@ -392,7 +392,7 @@ MethodType mt = MethodType.methodType(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, MethodHandle.class); Handle bootstrap = new Handle(Opcodes.H_INVOKESTATIC, Type.getInternalName(InvokeCustom.class), - "bsmCreateCallCallingtargetMethod", mt.toMethodDescriptorString(), false); + "bsmCreateCallSite", mt.toMethodDescriptorString(), false); mv.visitTypeInsn(Opcodes.NEW, Type.getInternalName(InvokeCustom.class)); mv.visitInsn(Opcodes.DUP); mv.visitMethodInsn(