< prev index next >
src/java.base/share/classes/java/lang/invoke/MethodHandles.java
Print this page
*** 3484,3493 ****
--- 3484,3499 ----
for (int i = 0; i < insCount; i++) {
Object value = values[i];
Class<?> ptype = ptypes[pos+i];
if (ptype.isPrimitive()) {
result = insertArgumentPrimitive(result, pos, ptype, value);
+ } else if (MinimalValueTypes_1_0.isValueType(ptype)) {
+ Class<?> vcc = MinimalValueTypes_1_0.getValueCapableClass(ptype);
+ Objects.requireNonNull(value); // throw NPE if needed
+ value = vcc.cast(value); // throw CCE if needed
+ MethodHandle unbox = ValueType.forClass(vcc).unbox();
+ result = result.bindArgumentQ(pos, value, unbox);
} else {
value = ptype.cast(value); // throw CCE if needed
result = result.bindArgumentL(pos, value);
}
}
< prev index next >