Charles Oliver Nutter a écrit :
> Ok, John got fixes in to get gWT working last night, so I gave my code 
> another try:
>
> http://gist.github.com/118504
>
> But I'm getting this, so I'm not wiring something correctly:
>
> CallSite.java:166:in `checkTarget': java.dyn.WrongMethodTypeException: 
> Bound[invoke_L5(java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object,java.lang.Object)java.lang.Object]
>       from CallSite.java:159:in `setTarget'
>       from InvokeDynamicSupport.java:66:in `fallback'
>       from -e:1:in `__file__'
>
> I'm investigating, but wanted to toss it out there in case someone sees 
> something obvious (or runs into the same thing).
>   

I think, I've found the bug, in MethodHandleImpl.makeGuardWithTest

if (nargs < GuardWithTest.INVOKES.length) {

                MethodType gtype = type.generic();

                 if (type == gtype)

                     return new GuardWithTest(test, target, fallback);

                 MethodHandle gtest = convertArguments(token, test, 
gtype.changeReturnType(boolean.class), test.type(), null);

                 MethodHandle gtarget = convertArguments(token, target, gtype, 
type, null);

                 MethodHandle gfallback = convertArguments(token, fallback, 
gtype, type, null);

                 MethodHandle gguard = new GuardWithTest(gtest, gtarget, 
gfallback);

                 return convertArguments(token, gguard, gtype, type, null);

              }

last line should be :

return convertArguments(token, gguard, type, gtype, null);


> - Charlie
>   
Rémi
_______________________________________________
mlvm-dev mailing list
[email protected]
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to