src/share/classes/java/lang/invoke/DirectMethodHandle.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/classes/java/lang/invoke/DirectMethodHandle.java	Fri Mar 21 19:45:44 2014
--- new/src/share/classes/java/lang/invoke/DirectMethodHandle.java	Fri Mar 21 19:45:44 2014

*** 29,38 **** --- 29,39 ---- import java.lang.reflect.Method; import java.util.Arrays; import sun.invoke.util.VerifyAccess; import static java.lang.invoke.MethodHandleNatives.Constants.*; import static java.lang.invoke.LambdaForm.*; + import static java.lang.invoke.LambdaForm.BasicType.*; import static java.lang.invoke.MethodTypeForm.*; import static java.lang.invoke.MethodHandleStatics.*; import java.lang.ref.WeakReference; import java.lang.reflect.Field; import sun.invoke.util.ValueConversions;
*** 144,156 **** --- 145,157 ---- MemberName internalMemberName() { return member; } @Override ! MethodHandle bindArgument(int pos, char basicType, Object value) { ! MethodHandle bindArgument(int pos, BasicType basicType, Object value) { // If the member needs dispatching, do so. ! if (pos == 0 && basicType == 'L') { ! if (pos == 0 && basicType == L_TYPE) { DirectMethodHandle concrete = maybeRebind(value); if (concrete != null) return concrete.bindReceiver(value); } return super.bindArgument(pos, basicType, value);
*** 272,282 **** --- 273,283 ---- System.arraycopy(outArgs, 0, outArgs, 1, outArgs.length-2); outArgs[0] = names[NEW_OBJ]; result = NEW_OBJ; } names[LINKER_CALL] = new Name(linker, outArgs); ! lambdaName += "_" + LambdaForm.basicTypeSignature(mtype); ! lambdaName += "_" + shortenSignature(basicTypeSignature(mtype)); LambdaForm lform = new LambdaForm(lambdaName, ARG_LIMIT, names, result); // This is a tricky bit of code. Don't send it through the LF interpreter. lform.compileToBytecode(); return lform; }

src/share/classes/java/lang/invoke/DirectMethodHandle.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File