< prev index next >
src/share/vm/oops/constantPool.cpp
Print this page
@@ -738,10 +738,11 @@
result_oop = string_at_impl(this_cp, index, cache_index, CHECK_NULL);
break;
case JVM_CONSTANT_MethodHandleInError:
case JVM_CONSTANT_MethodTypeInError:
+ case JVM_CONSTANT_InvokeDynamicInError:
{
throw_resolution_error(this_cp, index, CHECK_NULL);
break;
}
@@ -1405,10 +1406,11 @@
int k2 = from_cp->method_handle_index_at(from_i);
to_cp->method_handle_index_at_put(to_i, k1, k2);
} break;
case JVM_CONSTANT_InvokeDynamic:
+ case JVM_CONSTANT_InvokeDynamicInError:
{
int k1 = from_cp->invoke_dynamic_bootstrap_specifier_index(from_i);
int k2 = from_cp->invoke_dynamic_name_and_type_ref_index_at(from_i);
k1 += operand_array_length(to_cp->operands()); // to_cp might already have operands
to_cp->invoke_dynamic_at_put(to_i, k1, k2);
@@ -1666,10 +1668,11 @@
case JVM_CONSTANT_InterfaceMethodref:
case JVM_CONSTANT_NameAndType:
return 5;
case JVM_CONSTANT_InvokeDynamic:
+ case JVM_CONSTANT_InvokeDynamicInError:
// u1 tag, u2 bsm, u2 nt
return 5;
case JVM_CONSTANT_Long:
case JVM_CONSTANT_Double:
@@ -1850,11 +1853,12 @@
idx1 = method_type_index_at(idx);
Bytes::put_Java_u2((address) (bytes+1), idx1);
DBG(printf("JVM_CONSTANT_MethodType: %hd", idx1));
break;
}
- case JVM_CONSTANT_InvokeDynamic: {
+ case JVM_CONSTANT_InvokeDynamic:
+ case JVM_CONSTANT_InvokeDynamicInError: {
*bytes = tag;
idx1 = extract_low_short_from_int(*int_at_addr(idx));
idx2 = extract_high_short_from_int(*int_at_addr(idx));
assert(idx2 == invoke_dynamic_name_and_type_ref_index_at(idx), "correct half of u4");
Bytes::put_Java_u2((address) (bytes+1), idx1);
@@ -2056,10 +2060,11 @@
case JVM_CONSTANT_MethodType :
case JVM_CONSTANT_MethodTypeInError :
st->print("signature_index=%d", method_type_index_at(index));
break;
case JVM_CONSTANT_InvokeDynamic :
+ case JVM_CONSTANT_InvokeDynamicInError :
{
st->print("bootstrap_method_index=%d", invoke_dynamic_bootstrap_method_ref_index_at(index));
st->print(" name_and_type_index=%d", invoke_dynamic_name_and_type_ref_index_at(index));
int argc = invoke_dynamic_argument_count_at(index);
if (argc > 0) {
< prev index next >