--- a/indy.patch Fri Jun 12 23:49:43 2009 -0700
+++ b/indy.patch Sat Jun 13 00:06:56 2009 -0700
@@ -898,7 +898,7 @@ diff --git a/src/share/classes/java/dyn/
* @param target the method handle to invoke after the argument is inserted
* @param pos where to insert the argument (zero for the first)
* @param value the argument to insert
-@@ -925,25 +1035,40 @@
+@@ -925,25 +1035,34 @@
* before calling the original method handle
*/
public static
@@ -943,16 +943,10 @@ diff --git a/src/share/classes/java/dyn/
}
- return MethodHandleImpl.bindArgument(IMPL_TOKEN, target, pos, value);
+ return result;
-+ }
-+
-+ @Deprecated
-+ public static
-+ MethodHandle insertArgument(MethodHandle target, int pos, Object value) {
-+ return insertArguments(target, pos, value);
}
/**
-@@ -953,10 +1078,25 @@
+@@ -953,10 +1072,25 @@
* The type of the new method handle will insert the given argument
* type(s), at that position, into the original handle's type.
* <p>
@@ -979,7 +973,7 @@ diff --git a/src/share/classes/java/dyn/
* @param target the method handle to invoke after the argument is dropped
* @param valueTypes the type(s) of the argument to drop
* @param pos which argument to drop (zero for the first)
-@@ -1040,65 +1180,123 @@
+@@ -1040,65 +1174,123 @@
/**
* <em>PROVISIONAL API, WORK IN PROGRESS:</em>
@@ -8707,6 +8701,15 @@ diff --git a/src/share/classes/sun/dyn/u
EnumMap<Wrapper, MethodHandle>[] caches
= (EnumMap<Wrapper, MethodHandle>[]) new EnumMap[n]; // unchecked warning expected here
for (int i = 0; i < n; i++)
+@@ -543,7 +547,7 @@
+ else if (VerifyType.isNullType(type))
+ mh = ALWAYS_NULL;
+ else
+- mh = MethodHandles.insertArgument(CAST_REFERENCE, 0, type);
++ mh = MethodHandles.insertArguments(CAST_REFERENCE, 0, type);
+ if (exact) {
+ MethodType xmt = MethodType.make(type, Object.class);
+ mh = AdapterMethodHandle.makeRawRetypeOnly(IMPL_TOKEN, xmt, mh);
@@ -560,4 +564,127 @@
private static MethodHandle retype(MethodType type, MethodHandle mh) {
return AdapterMethodHandle.makeRetypeOnly(IMPL_TOKEN, type, mh);