JavaOne meet-up?

Rémi Forax forax at univ-mlv.fr
Mon Sep 27 07:56:45 PDT 2010


Here is a small test case.

It crashes with jdk7b111 with c2.

Christian could you test with your build ?

Rémi

----------------------------------------------------------------------------------------------------------

import java.dyn.CallSite;
import java.dyn.InvokeDynamic;
import java.dyn.Linkage;
import java.dyn.MethodHandle;
import java.dyn.MethodHandles;
import java.dyn.MethodType;
import java.dyn.MethodHandles.Lookup;


public class ConvertBooleanBug {
   public static Object fallback(CallSite callSite, Object left, Object 
right) {
     return true;
   }

   public static CallSite bootstrap(Class<?> declaringClass, String 
name, MethodType type) {
       Lookup lookup = MethodHandles.lookup();

       MethodHandle fallback = 
lookup.findStatic(ConvertBooleanBug.class, "fallback",
               MethodType.methodType(Object.class, CallSite.class, 
Object.class, Object.class));

       CallSite callSite = new CallSite();
       fallback = MethodHandles.insertArguments(fallback, 0, callSite);

       fallback = MethodHandles.convertArguments(fallback, type);
       callSite.setTarget(fallback);
       return callSite;
   }

   public static void main(String[] args) throws Throwable {
       for(int i=0; i<100000; i++) {
         boolean b = InvokeDynamic.<boolean>call((Object)1, 2);
       }
   }

   static {
       Linkage.registerBootstrapMethod("bootstrap");
   }
}



More information about the mlvm-dev mailing list