< prev index next >

src/hotspot/share/classfile/classFileParser.cpp

Print this page




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




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


< prev index next >