src/share/classes/java/lang/invoke/MethodHandleImpl.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/classes/java/lang/invoke/MethodHandleImpl.java Fri Nov 8 17:48:52 2013
--- new/src/share/classes/java/lang/invoke/MethodHandleImpl.java Fri Nov 8 17:48:52 2013
*** 742,753 ****
--- 742,756 ----
GuardWithCatch gguard = new GuardWithCatch(gtarget, exType, gcatcher);
if (gtarget == null || gcatcher == null) throw new InternalError();
MethodHandle ginvoker = GuardWithCatch.INVOKES[nargs].bindReceiver(gguard);
return makePairwiseConvert(ginvoker, type, 2);
} else {
+ target = target.asType(type.changeReturnType(Object.class));
MethodHandle gtarget = makeSpreadArguments(target, Object[].class, 0, nargs);
catcher = catcher.asType(ctype.changeParameterType(0, Throwable.class));
+ MethodType catcherType = ctype.changeParameterType(0, Throwable.class)
+ .changeReturnType(Object.class);
+ catcher = catcher.asType(catcherType);
MethodHandle gcatcher = makeSpreadArguments(catcher, Object[].class, 1, nargs);
GuardWithCatch gguard = new GuardWithCatch(gtarget, exType, gcatcher);
if (gtarget == null || gcatcher == null) throw new InternalError();
MethodHandle ginvoker = GuardWithCatch.VARARGS_INVOKE.bindReceiver(gguard);
MethodHandle gcollect = makeCollectArguments(ginvoker, ValueConversions.varargsArray(nargs), 0, false);
src/share/classes/java/lang/invoke/MethodHandleImpl.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File