102 void apply_parsed_class_attributes(instanceKlassHandle k); // update k
103 void apply_parsed_class_metadata(instanceKlassHandle k, int fields_count, TRAPS);
104 void clear_class_metadata() {
105 // metadata created before the instance klass is created. Must be
106 // deallocated if classfile parsing returns an error.
107 _cp = NULL;
108 _fields = NULL;
109 _methods = NULL;
110 _inner_classes = NULL;
111 _local_interfaces = NULL;
112 _transitive_interfaces = NULL;
113 _annotations = _type_annotations = NULL;
114 _fields_annotations = _fields_type_annotations = NULL;
115 }
116
117 class AnnotationCollector {
118 public:
119 enum Location { _in_field, _in_method, _in_class };
120 enum ID {
121 _unknown = 0,
122 _method_ForceInline,
123 _method_DontInline,
124 _method_LambdaForm_Compiled,
125 _method_LambdaForm_Hidden,
126 _sun_misc_Contended,
127 _annotation_LIMIT
128 };
129 const Location _location;
130 int _annotations_present;
131 u2 _contended_group;
132
133 AnnotationCollector(Location location)
134 : _location(location), _annotations_present(0)
135 {
136 assert((int)_annotation_LIMIT <= (int)sizeof(_annotations_present) * BitsPerByte, "");
137 }
138 // If this annotation name has an ID, report it (or _none).
139 ID annotation_index(ClassLoaderData* loader_data, Symbol* name);
140 // Set the annotation name:
141 void set_annotation(ID id) {
|
102 void apply_parsed_class_attributes(instanceKlassHandle k); // update k
103 void apply_parsed_class_metadata(instanceKlassHandle k, int fields_count, TRAPS);
104 void clear_class_metadata() {
105 // metadata created before the instance klass is created. Must be
106 // deallocated if classfile parsing returns an error.
107 _cp = NULL;
108 _fields = NULL;
109 _methods = NULL;
110 _inner_classes = NULL;
111 _local_interfaces = NULL;
112 _transitive_interfaces = NULL;
113 _annotations = _type_annotations = NULL;
114 _fields_annotations = _fields_type_annotations = NULL;
115 }
116
117 class AnnotationCollector {
118 public:
119 enum Location { _in_field, _in_method, _in_class };
120 enum ID {
121 _unknown = 0,
122 _method_CallerSensitive,
123 _method_ForceInline,
124 _method_DontInline,
125 _method_LambdaForm_Compiled,
126 _method_LambdaForm_Hidden,
127 _sun_misc_Contended,
128 _annotation_LIMIT
129 };
130 const Location _location;
131 int _annotations_present;
132 u2 _contended_group;
133
134 AnnotationCollector(Location location)
135 : _location(location), _annotations_present(0)
136 {
137 assert((int)_annotation_LIMIT <= (int)sizeof(_annotations_present) * BitsPerByte, "");
138 }
139 // If this annotation name has an ID, report it (or _none).
140 ID annotation_index(ClassLoaderData* loader_data, Symbol* name);
141 // Set the annotation name:
142 void set_annotation(ID id) {
|