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