146 constantPoolHandle parse_constant_pool(ClassLoaderData* loader_data, TRAPS); |
146 constantPoolHandle parse_constant_pool(ClassLoaderData* loader_data, TRAPS); |
147 |
147 |
148 // Interface parsing |
148 // Interface parsing |
149 Array<Klass*>* parse_interfaces(constantPoolHandle cp, |
149 Array<Klass*>* parse_interfaces(constantPoolHandle cp, |
150 int length, |
150 int length, |
151 ClassLoaderData* loader_data, |
151 ClassLoaderData* loader_data, |
152 Handle protection_domain, |
152 Handle protection_domain, |
153 Symbol* class_name, |
153 Symbol* class_name, |
154 TRAPS); |
154 TRAPS); |
155 void record_defined_class_dependencies(instanceKlassHandle defined_klass, TRAPS); |
155 void record_defined_class_dependencies(instanceKlassHandle defined_klass, TRAPS); |
156 |
156 |
164 AnnotationArray** field_annotations, |
164 AnnotationArray** field_annotations, |
165 FieldAnnotationCollector* parsed_annotations, |
165 FieldAnnotationCollector* parsed_annotations, |
166 TRAPS); |
166 TRAPS); |
167 Array<u2>* parse_fields(ClassLoaderData* loader_data, |
167 Array<u2>* parse_fields(ClassLoaderData* loader_data, |
168 Symbol* class_name, |
168 Symbol* class_name, |
169 constantPoolHandle cp, bool is_interface, |
169 constantPoolHandle cp, bool is_interface, |
170 FieldAllocationCount *fac, |
170 FieldAllocationCount *fac, |
171 Array<AnnotationArray*>** fields_annotations, |
171 Array<AnnotationArray*>** fields_annotations, |
172 u2* java_fields_count_ptr, TRAPS); |
172 u2* java_fields_count_ptr, TRAPS); |
173 |
173 |
174 // Method parsing |
174 // Method parsing |
175 methodHandle parse_method(ClassLoaderData* loader_data, |
175 methodHandle parse_method(ClassLoaderData* loader_data, |
176 constantPoolHandle cp, |
176 constantPoolHandle cp, |
177 bool is_interface, |
177 bool is_interface, |
179 AnnotationArray** method_annotations, |
179 AnnotationArray** method_annotations, |
180 AnnotationArray** method_parameter_annotations, |
180 AnnotationArray** method_parameter_annotations, |
181 AnnotationArray** method_default_annotations, |
181 AnnotationArray** method_default_annotations, |
182 TRAPS); |
182 TRAPS); |
183 Array<Method*>* parse_methods(ClassLoaderData* loader_data, |
183 Array<Method*>* parse_methods(ClassLoaderData* loader_data, |
184 constantPoolHandle cp, |
184 constantPoolHandle cp, |
185 bool is_interface, |
185 bool is_interface, |
186 AccessFlags* promoted_flags, |
186 AccessFlags* promoted_flags, |
187 bool* has_final_method, |
187 bool* has_final_method, |
188 Array<AnnotationArray*>** methods_annotations, |
188 Array<AnnotationArray*>** methods_annotations, |
189 Array<AnnotationArray*>** methods_parameter_annotations, |
189 Array<AnnotationArray*>** methods_parameter_annotations, |
190 Array<AnnotationArray*>** methods_default_annotations, |
190 Array<AnnotationArray*>** methods_default_annotations, |
191 TRAPS); |
191 TRAPS); |
192 Array<int>* sort_methods(ClassLoaderData* loader_data, |
192 Array<int>* sort_methods(ClassLoaderData* loader_data, |
193 Array<Method*>* methods, |
193 Array<Method*>* methods, |
194 Array<AnnotationArray*>* methods_annotations, |
194 Array<AnnotationArray*>* methods_annotations, |
195 Array<AnnotationArray*>* methods_parameter_annotations, |
195 Array<AnnotationArray*>* methods_parameter_annotations, |
230 void parse_classfile_bootstrap_methods_attribute(ClassLoaderData* loader_data, constantPoolHandle cp, u4 attribute_length, TRAPS); |
230 void parse_classfile_bootstrap_methods_attribute(ClassLoaderData* loader_data, constantPoolHandle cp, u4 attribute_length, TRAPS); |
231 |
231 |
232 // Annotations handling |
232 // Annotations handling |
233 AnnotationArray* assemble_annotations(ClassLoaderData* loader_data, |
233 AnnotationArray* assemble_annotations(ClassLoaderData* loader_data, |
234 u1* runtime_visible_annotations, |
234 u1* runtime_visible_annotations, |
235 int runtime_visible_annotations_length, |
235 int runtime_visible_annotations_length, |
236 u1* runtime_invisible_annotations, |
236 u1* runtime_invisible_annotations, |
237 int runtime_invisible_annotations_length, TRAPS); |
237 int runtime_invisible_annotations_length, TRAPS); |
238 int skip_annotation(u1* buffer, int limit, int index); |
238 int skip_annotation(u1* buffer, int limit, int index); |
239 int skip_annotation_value(u1* buffer, int limit, int index); |
239 int skip_annotation_value(u1* buffer, int limit, int index); |
240 void parse_annotations(u1* buffer, int limit, constantPoolHandle cp, |
240 void parse_annotations(u1* buffer, int limit, constantPoolHandle cp, |
241 /* Results (currently, only one result is supported): */ |
241 /* Results (currently, only one result is supported): */ |
242 AnnotationCollector* result, |
242 AnnotationCollector* result, |
250 unsigned int nonstatic_oop_map_count, |
250 unsigned int nonstatic_oop_map_count, |
251 int* nonstatic_oop_offsets, |
251 int* nonstatic_oop_offsets, |
252 unsigned int* nonstatic_oop_counts); |
252 unsigned int* nonstatic_oop_counts); |
253 void set_precomputed_flags(instanceKlassHandle k); |
253 void set_precomputed_flags(instanceKlassHandle k); |
254 Array<Klass*>* compute_transitive_interfaces(ClassLoaderData* loader_data, |
254 Array<Klass*>* compute_transitive_interfaces(ClassLoaderData* loader_data, |
255 instanceKlassHandle super, |
255 instanceKlassHandle super, |
256 Array<Klass*>* local_ifs, TRAPS); |
256 Array<Klass*>* local_ifs, TRAPS); |
257 |
257 |
258 // Format checker methods |
258 // Format checker methods |
259 void classfile_parse_error(const char* msg, TRAPS); |
259 void classfile_parse_error(const char* msg, TRAPS); |
260 void classfile_parse_error(const char* msg, int index, TRAPS); |
260 void classfile_parse_error(const char* msg, int index, TRAPS); |
261 void classfile_parse_error(const char* msg, const char *name, TRAPS); |
261 void classfile_parse_error(const char* msg, const char *name, TRAPS); |