3452 "Multiple RuntimeVisibleTypeAnnotations attributes in class file %s", CHECK);
3453 }
3454 runtime_visible_type_annotations_length = attribute_length;
3455 runtime_visible_type_annotations = cfs->current();
3456 assert(runtime_visible_type_annotations != NULL, "null visible type annotations");
3457 // No need for the VM to parse Type annotations
3458 cfs->skip_u1(runtime_visible_type_annotations_length, CHECK);
3459 } else if (tag == vmSymbols::tag_runtime_invisible_type_annotations()) {
3460 if (runtime_invisible_type_annotations_exists) {
3461 classfile_parse_error(
3462 "Multiple RuntimeInvisibleTypeAnnotations attributes in class file %s", CHECK);
3463 } else {
3464 runtime_invisible_type_annotations_exists = true;
3465 }
3466 if (PreserveAllAnnotations) {
3467 runtime_invisible_type_annotations_length = attribute_length;
3468 runtime_invisible_type_annotations = cfs->current();
3469 assert(runtime_invisible_type_annotations != NULL, "null invisible type annotations");
3470 }
3471 cfs->skip_u1(attribute_length, CHECK);
3472 } else if (_major_version >= JAVA_10_VERSION) {
3473 if (tag == vmSymbols::tag_nest_members()) {
3474 // Check for NestMembers tag
3475 if (parsed_nest_members_attribute) {
3476 classfile_parse_error("Multiple NestMembers attributes in class file %s", CHECK);
3477 } else {
3478 parsed_nest_members_attribute = true;
3479 }
3480 if (parsed_nest_host_attribute) {
3481 classfile_parse_error("Conflicting NestHost and NestMembers attributes in class file %s", CHECK);
3482 }
3483 nest_members_attribute_start = cfs->current();
3484 nest_members_attribute_length = attribute_length;
3485 cfs->skip_u1(nest_members_attribute_length, CHECK);
3486 } else if (tag == vmSymbols::tag_nest_host()) {
3487 if (parsed_nest_host_attribute) {
3488 classfile_parse_error("Multiple NestHost attributes in class file %s", CHECK);
3489 } else {
3490 parsed_nest_host_attribute = true;
3491 }
3492 if (parsed_nest_members_attribute) {
|
3452 "Multiple RuntimeVisibleTypeAnnotations attributes in class file %s", CHECK);
3453 }
3454 runtime_visible_type_annotations_length = attribute_length;
3455 runtime_visible_type_annotations = cfs->current();
3456 assert(runtime_visible_type_annotations != NULL, "null visible type annotations");
3457 // No need for the VM to parse Type annotations
3458 cfs->skip_u1(runtime_visible_type_annotations_length, CHECK);
3459 } else if (tag == vmSymbols::tag_runtime_invisible_type_annotations()) {
3460 if (runtime_invisible_type_annotations_exists) {
3461 classfile_parse_error(
3462 "Multiple RuntimeInvisibleTypeAnnotations attributes in class file %s", CHECK);
3463 } else {
3464 runtime_invisible_type_annotations_exists = true;
3465 }
3466 if (PreserveAllAnnotations) {
3467 runtime_invisible_type_annotations_length = attribute_length;
3468 runtime_invisible_type_annotations = cfs->current();
3469 assert(runtime_invisible_type_annotations != NULL, "null invisible type annotations");
3470 }
3471 cfs->skip_u1(attribute_length, CHECK);
3472 } else if (_major_version >= JAVA_11_VERSION) {
3473 if (tag == vmSymbols::tag_nest_members()) {
3474 // Check for NestMembers tag
3475 if (parsed_nest_members_attribute) {
3476 classfile_parse_error("Multiple NestMembers attributes in class file %s", CHECK);
3477 } else {
3478 parsed_nest_members_attribute = true;
3479 }
3480 if (parsed_nest_host_attribute) {
3481 classfile_parse_error("Conflicting NestHost and NestMembers attributes in class file %s", CHECK);
3482 }
3483 nest_members_attribute_start = cfs->current();
3484 nest_members_attribute_length = attribute_length;
3485 cfs->skip_u1(nest_members_attribute_length, CHECK);
3486 } else if (tag == vmSymbols::tag_nest_host()) {
3487 if (parsed_nest_host_attribute) {
3488 classfile_parse_error("Multiple NestHost attributes in class file %s", CHECK);
3489 } else {
3490 parsed_nest_host_attribute = true;
3491 }
3492 if (parsed_nest_members_attribute) {
|