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");
151 _annotations_present |= nth_bit((int)id);
152 }
|
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 _method_HotSpotIntrinsicCandidate,
134 _sun_misc_Contended,
135 _field_Stable,
136 _annotation_LIMIT
137 };
138 const Location _location;
139 int _annotations_present;
140 u2 _contended_group;
141
142 AnnotationCollector(Location location)
143 : _location(location), _annotations_present(0)
144 {
145 assert((int)_annotation_LIMIT <= (int)sizeof(_annotations_present) * BitsPerByte, "");
146 }
147 // If this annotation name has an ID, report it (or _none).
148 ID annotation_index(ClassLoaderData* loader_data, Symbol* name);
149 // Set the annotation name:
150 void set_annotation(ID id) {
151 assert((int)id >= 0 && (int)id < (int)_annotation_LIMIT, "oob");
152 _annotations_present |= nth_bit((int)id);
153 }
|