< 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 >