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