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