110 // deallocated if classfile parsing returns an error.
111 _cp = NULL;
112 _fields = NULL;
113 _methods = NULL;
114 _inner_classes = NULL;
115 _local_interfaces = NULL;
116 _transitive_interfaces = NULL;
117 _combined_annotations = NULL;
118 _annotations = _type_annotations = NULL;
119 _fields_annotations = _fields_type_annotations = NULL;
120 }
121
122 class AnnotationCollector {
123 public:
124 enum Location { _in_field, _in_method, _in_class };
125 enum ID {
126 _unknown = 0,
127 _method_CallerSensitive,
128 _method_ForceInline,
129 _method_DontInline,
130 _method_LambdaForm_Compiled,
131 _method_LambdaForm_Hidden,
132 _sun_misc_Contended,
133 _field_Stable,
134 _annotation_LIMIT
135 };
136 const Location _location;
137 int _annotations_present;
138 u2 _contended_group;
139
140 AnnotationCollector(Location location)
141 : _location(location), _annotations_present(0)
142 {
143 assert((int)_annotation_LIMIT <= (int)sizeof(_annotations_present) * BitsPerByte, "");
144 }
145 // If this annotation name has an ID, report it (or _none).
146 ID annotation_index(ClassLoaderData* loader_data, Symbol* name);
147 // Set the annotation name:
148 void set_annotation(ID id) {
149 assert((int)id >= 0 && (int)id < (int)_annotation_LIMIT, "oob");
|
110 // deallocated if classfile parsing returns an error.
111 _cp = NULL;
112 _fields = NULL;
113 _methods = NULL;
114 _inner_classes = NULL;
115 _local_interfaces = NULL;
116 _transitive_interfaces = NULL;
117 _combined_annotations = NULL;
118 _annotations = _type_annotations = NULL;
119 _fields_annotations = _fields_type_annotations = NULL;
120 }
121
122 class AnnotationCollector {
123 public:
124 enum Location { _in_field, _in_method, _in_class };
125 enum ID {
126 _unknown = 0,
127 _method_CallerSensitive,
128 _method_ForceInline,
129 _method_DontInline,
130 _method_InjectedProfile,
131 _method_LambdaForm_Compiled,
132 _method_LambdaForm_Hidden,
133 _sun_misc_Contended,
134 _field_Stable,
135 _annotation_LIMIT
136 };
137 const Location _location;
138 int _annotations_present;
139 u2 _contended_group;
140
141 AnnotationCollector(Location location)
142 : _location(location), _annotations_present(0)
143 {
144 assert((int)_annotation_LIMIT <= (int)sizeof(_annotations_present) * BitsPerByte, "");
145 }
146 // If this annotation name has an ID, report it (or _none).
147 ID annotation_index(ClassLoaderData* loader_data, Symbol* name);
148 // Set the annotation name:
149 void set_annotation(ID id) {
150 assert((int)id >= 0 && (int)id < (int)_annotation_LIMIT, "oob");
|