Mercurial > hg > icedtea8-forest > jdk
changeset 12144:605340e78242 jdk8u102-b09
Merge
author | asaha |
---|---|
date | Mon, 23 May 2016 20:48:12 -0700 |
parents | a8ff60ed6f33 (current diff) e76eb0ed270b (diff) |
children | 2dbcee9f5b45 |
files | .hgtags |
diffstat | 2 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Thu May 19 03:55:17 2016 -0700 +++ b/.hgtags Mon May 23 20:48:12 2016 -0700 @@ -597,6 +597,7 @@ a15cdf2e91e7c2d71510280b31ae11048fb2f31e jdk8u101-b06 fdc0b30af431e17ffaed24ef5d545ae4cf7ddf6d jdk8u101-b07 4dc4099e933a6f4584b51305b26b5798f042699b jdk8u101-b08 +5e7489ac05f0001e234e6d1c8730b465e74c9626 jdk8u101-b09 39baa472e20c13c0eb1243eb5dce589e82f78143 jdk8u76-b00 6ea3aea950d19d803475b3f4d704a2942e71b302 jdk8u76-b01 4de4cffb5988cd68959ce4bbd14c6d4547078c91 jdk8u76-b02
--- a/src/share/classes/java/lang/invoke/MethodHandles.java Thu May 19 03:55:17 2016 -0700 +++ b/src/share/classes/java/lang/invoke/MethodHandles.java Mon May 23 20:48:12 2016 -0700 @@ -28,6 +28,7 @@ import java.lang.reflect.*; import java.util.BitSet; import java.util.List; +import java.util.ArrayList; import java.util.Arrays; import sun.invoke.util.ValueConversions; @@ -2445,6 +2446,7 @@ */ public static MethodHandle dropArguments(MethodHandle target, int pos, List<Class<?>> valueTypes) { + valueTypes = copyTypes(valueTypes); MethodType oldType = target.type(); // get NPE int dropped = dropArgumentChecks(oldType, pos, valueTypes); MethodType newType = oldType.insertParameterTypes(pos, valueTypes); @@ -2459,6 +2461,11 @@ return result; } + private static List<Class<?>> copyTypes(List<Class<?>> types) { + Object[] a = types.toArray(); + return Arrays.asList(Arrays.copyOf(a, a.length, Class[].class)); + } + private static int dropArgumentChecks(MethodType oldType, int pos, List<Class<?>> valueTypes) { int dropped = valueTypes.size(); MethodType.checkSlotCount(dropped);