< prev index next >
jdk/src/java.base/share/classes/jdk/experimental/value/MethodHandleBuilder.java
Print this page
*** 316,330 ****
}
}
@Override
public int putValue(Object v) {
! if (v instanceof Class<?> || v instanceof MethodHandle || v instanceof MethodType) {
! return patchPoolEntry(v);
! }
return basicPoolHelper.putValue(v);
}
int patchPoolEntry(Object v) {
String cpPlaceholder = "CONSTANT_PLACEHOLDER_" + cph++;
if (MinimalValueTypes_1_0.DUMP_CLASS_FILES) cpPlaceholder += " <<" + debugString(v) + ">>";
if (cpPatches.containsKey(cpPlaceholder)) {
--- 316,331 ----
}
}
@Override
public int putValue(Object v) {
! if (v instanceof String || v instanceof Integer || v instanceof Float || v instanceof Double || v instanceof Long) {
return basicPoolHelper.putValue(v);
}
+ assert (!v.getClass().isPrimitive()) : v;
+ return patchPoolEntry(v); // CP patching support
+ }
int patchPoolEntry(Object v) {
String cpPlaceholder = "CONSTANT_PLACEHOLDER_" + cph++;
if (MinimalValueTypes_1_0.DUMP_CLASS_FILES) cpPlaceholder += " <<" + debugString(v) + ">>";
if (cpPatches.containsKey(cpPlaceholder)) {
< prev index next >