< prev index next >

src/share/vm/oops/constantPool.cpp

Print this page

        

*** 738,747 **** --- 738,748 ---- 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,1414 **** --- 1406,1416 ---- 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,1675 **** --- 1668,1678 ---- 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,1860 **** 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: { *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); --- 1853,1864 ---- 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_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,2065 **** --- 2060,2070 ---- 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 >