< prev index next >

src/hotspot/share/classfile/classFileParser.cpp

Print this page




 481         check_property(valid_symbol_at(signature_ref_index),
 482           "Invalid constant pool index %u in class file %s",
 483           signature_ref_index, CHECK);
 484         break;
 485       }
 486       case JVM_CONSTANT_Utf8:
 487         break;
 488       case JVM_CONSTANT_UnresolvedClass:         // fall-through
 489       case JVM_CONSTANT_UnresolvedClassInError: {
 490         ShouldNotReachHere();     // Only JVM_CONSTANT_ClassIndex should be present
 491         break;
 492       }
 493       case JVM_CONSTANT_ClassIndex: {
 494         const int class_index = cp->klass_index_at(index);
 495         check_property(valid_symbol_at(class_index),
 496           "Invalid constant pool index %u in class file %s",
 497           class_index, CHECK);
 498 
 499         Symbol* const name = cp->symbol_at(class_index);
 500         const unsigned int name_len = name->utf8_length();
 501         if (name->is_Q_signature()) {
 502           cp->unresolved_qdescriptor_at_put(index, class_index, num_klasses++);
 503         } else {
 504           cp->unresolved_klass_at_put(index, class_index, num_klasses++);
 505         }
 506         break;
 507       }
 508       case JVM_CONSTANT_StringIndex: {
 509         const int string_index = cp->string_index_at(index);
 510         check_property(valid_symbol_at(string_index),
 511           "Invalid constant pool index %u in class file %s",
 512           string_index, CHECK);
 513         Symbol* const sym = cp->symbol_at(string_index);
 514         cp->unresolved_string_at_put(index, sym);
 515         break;
 516       }
 517       case JVM_CONSTANT_MethodHandle: {
 518         const int ref_index = cp->method_handle_index_at(index);
 519         check_property(valid_cp_range(ref_index, length),
 520           "Invalid constant pool index %u in class file %s",
 521           ref_index, CHECK);




 481         check_property(valid_symbol_at(signature_ref_index),
 482           "Invalid constant pool index %u in class file %s",
 483           signature_ref_index, CHECK);
 484         break;
 485       }
 486       case JVM_CONSTANT_Utf8:
 487         break;
 488       case JVM_CONSTANT_UnresolvedClass:         // fall-through
 489       case JVM_CONSTANT_UnresolvedClassInError: {
 490         ShouldNotReachHere();     // Only JVM_CONSTANT_ClassIndex should be present
 491         break;
 492       }
 493       case JVM_CONSTANT_ClassIndex: {
 494         const int class_index = cp->klass_index_at(index);
 495         check_property(valid_symbol_at(class_index),
 496           "Invalid constant pool index %u in class file %s",
 497           class_index, CHECK);
 498 
 499         Symbol* const name = cp->symbol_at(class_index);
 500         const unsigned int name_len = name->utf8_length();
 501         if (name->is_Q_signature() || name->is_Q_array_signature()) {
 502           cp->unresolved_qdescriptor_at_put(index, class_index, num_klasses++);
 503         } else {
 504           cp->unresolved_klass_at_put(index, class_index, num_klasses++);
 505         }
 506         break;
 507       }
 508       case JVM_CONSTANT_StringIndex: {
 509         const int string_index = cp->string_index_at(index);
 510         check_property(valid_symbol_at(string_index),
 511           "Invalid constant pool index %u in class file %s",
 512           string_index, CHECK);
 513         Symbol* const sym = cp->symbol_at(string_index);
 514         cp->unresolved_string_at_put(index, sym);
 515         break;
 516       }
 517       case JVM_CONSTANT_MethodHandle: {
 518         const int ref_index = cp->method_handle_index_at(index);
 519         check_property(valid_cp_range(ref_index, length),
 520           "Invalid constant pool index %u in class file %s",
 521           ref_index, CHECK);


< prev index next >