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