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 Tue Jul 15 17:49:29 2014
--- new/src/share/classes/java/lang/invoke/MethodHandleImpl.java Tue Jul 15 17:49:29 2014
*** 432,462 ****
--- 432,441 ----
/*non-public*/
@Override
boolean isInvokeSpecial() {
return asFixedArity().isInvokeSpecial();
}
@Override
MethodHandle bindArgument(int pos, BasicType basicType, Object value) {
return asFixedArity().bindArgument(pos, basicType, value);
}
@Override
MethodHandle bindReceiver(Object receiver) {
return asFixedArity().bindReceiver(receiver);
}
@Override
MethodHandle dropArguments(MethodType srcType, int pos, int drops) {
return asFixedArity().dropArguments(srcType, pos, drops);
}
@Override
MethodHandle permuteArguments(MethodType newType, int[] reorder) {
return asFixedArity().permuteArguments(newType, reorder);
}
}
/** Factory method: Spread selected argument. */
static MethodHandle makeSpreadArguments(MethodHandle target,
Class<?> spreadArgType, int spreadArgPos, int spreadArgCount) {
*** 792,802 ****
--- 771,783 ----
static
MethodHandle throwException(MethodType type) {
assert(Throwable.class.isAssignableFrom(type.parameterType(0)));
int arity = type.parameterCount();
if (arity > 1) {
! return throwException(type.dropParameterTypes(1, arity)).dropArguments(type, 1, arity-1);
! MethodHandle mh = throwException(type.dropParameterTypes(1, arity));
+ mh = MethodHandles.dropArguments(mh, 1, type.parameterList().subList(1, arity));
+ return mh;
}
return makePairwiseConvert(Lazy.NF_throwException.resolvedHandle(), type, 2);
}
static <T extends Throwable> Empty throwException(T t) throws T { throw t; }
src/share/classes/java/lang/invoke/MethodHandleImpl.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File