3553 cfs->skip_u1(nest_members_attribute_length, CHECK); 3554 } else if (tag == vmSymbols::tag_nest_host()) { 3555 if (parsed_nest_host_attribute) { 3556 classfile_parse_error("Multiple NestHost attributes in class file %s", CHECK); 3557 } else { 3558 parsed_nest_host_attribute = true; 3559 } 3560 if (parsed_nest_members_attribute) { 3561 classfile_parse_error("Conflicting NestMembers and NestHost attributes in class file %s", CHECK); 3562 } 3563 if (_need_verify) { 3564 guarantee_property(attribute_length == 2, "Wrong NestHost attribute length in class file %s", CHECK); 3565 } 3566 cfs->guarantee_more(2, CHECK); 3567 u2 class_info_index = cfs->get_u2_fast(); 3568 check_property( 3569 valid_klass_reference_at(class_info_index), 3570 "Nest-host class_info_index %u has bad constant type in class file %s", 3571 class_info_index, CHECK); 3572 _nest_host = class_info_index; 3573 } 3574 } else { 3575 // Unknown attribute 3576 cfs->skip_u1(attribute_length, CHECK); 3577 } 3578 } else { 3579 // Unknown attribute 3580 cfs->skip_u1(attribute_length, CHECK); 3581 } 3582 } 3583 _annotations = assemble_annotations(runtime_visible_annotations, 3584 runtime_visible_annotations_length, 3585 runtime_invisible_annotations, 3586 runtime_invisible_annotations_length, 3587 CHECK); 3588 _type_annotations = assemble_annotations(runtime_visible_type_annotations, 3589 runtime_visible_type_annotations_length, 3590 runtime_invisible_type_annotations, 3591 runtime_invisible_type_annotations_length, 3592 CHECK); | 3553 cfs->skip_u1(nest_members_attribute_length, CHECK); 3554 } else if (tag == vmSymbols::tag_nest_host()) { 3555 if (parsed_nest_host_attribute) { 3556 classfile_parse_error("Multiple NestHost attributes in class file %s", CHECK); 3557 } else { 3558 parsed_nest_host_attribute = true; 3559 } 3560 if (parsed_nest_members_attribute) { 3561 classfile_parse_error("Conflicting NestMembers and NestHost attributes in class file %s", CHECK); 3562 } 3563 if (_need_verify) { 3564 guarantee_property(attribute_length == 2, "Wrong NestHost attribute length in class file %s", CHECK); 3565 } 3566 cfs->guarantee_more(2, CHECK); 3567 u2 class_info_index = cfs->get_u2_fast(); 3568 check_property( 3569 valid_klass_reference_at(class_info_index), 3570 "Nest-host class_info_index %u has bad constant type in class file %s", 3571 class_info_index, CHECK); 3572 _nest_host = class_info_index; 3573 } else { 3574 // Unknown attribute 3575 cfs->skip_u1(attribute_length, CHECK); 3576 } 3577 } else { 3578 // Unknown attribute 3579 cfs->skip_u1(attribute_length, CHECK); 3580 } 3581 } else { 3582 // Unknown attribute 3583 cfs->skip_u1(attribute_length, CHECK); 3584 } 3585 } 3586 _annotations = assemble_annotations(runtime_visible_annotations, 3587 runtime_visible_annotations_length, 3588 runtime_invisible_annotations, 3589 runtime_invisible_annotations_length, 3590 CHECK); 3591 _type_annotations = assemble_annotations(runtime_visible_type_annotations, 3592 runtime_visible_type_annotations_length, 3593 runtime_invisible_type_annotations, 3594 runtime_invisible_type_annotations_length, 3595 CHECK); |