Reviewed. Thanks for the fix. The test case will also be a useful quick test for unboxed catchEx paths. — John
On Nov 8, 2013, at 7:25 AM, Vladimir Ivanov <vladimir.x.iva...@oracle.com> wrote: > http://cr.openjdk.java.net/~vlivanov/8027823/webrev.00/ > > MethodHandleImpl.makeGuardWithCatch has special invokers > (GuardWithCatch.invoke_L*) for methods with arity up to 8. > When method arity is larger, generic invoker (GuardWithCatch.invoke_V) > is used. > > Generic invoker expects GuardWithCatch.target & GuardWithCatch.catcher > method handles to have (Object... av)Object type, but they can reference > arbitrary methods, so type conversion is needed. > > makeSpreadArguments takes care of parameters' type conversion, but > return type is left as is. That's the reason why GuardWithCatch.invoke_V > fails to invoke both target or catcher. > > The fix is to add return type conversion on both paths. > > Testing: failing test, test/java/lang/invoke/ > > Thanks! > > Best regards, > Vladimir Ivanov > > JBS: https://bugs.openjdk.java.net/browse/JDK-8027823 > _______________________________________________ > mlvm-dev mailing list > mlvm-dev@openjdk.java.net > http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev _______________________________________________ mlvm-dev mailing list mlvm-dev@openjdk.java.net http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev