81
82 const ClassFileStream* _stream; // Actual input stream
83 const Symbol* _requested_name;
84 Symbol* _class_name;
85 mutable ClassLoaderData* _loader_data;
86 const InstanceKlass* _host_klass;
87 GrowableArray<Handle>* _cp_patches; // overrides for CP entries
88 int _num_patched_klasses;
89 int _max_num_patched_klasses;
90 int _orig_cp_size;
91 int _first_patched_klass_resolved_index;
92
93 // Metadata created before the instance klass is created. Must be deallocated
94 // if not transferred to the InstanceKlass upon successful class loading
95 // in which case these pointers have been set to NULL.
96 const InstanceKlass* _super_klass;
97 ConstantPool* _cp;
98 Array<u2>* _fields;
99 Array<Method*>* _methods;
100 Array<u2>* _inner_classes;
101 Array<Klass*>* _local_interfaces;
102 Array<Klass*>* _transitive_interfaces;
103 Annotations* _combined_annotations;
104 AnnotationArray* _annotations;
105 AnnotationArray* _type_annotations;
106 Array<AnnotationArray*>* _fields_annotations;
107 Array<AnnotationArray*>* _fields_type_annotations;
108 InstanceKlass* _klass; // InstanceKlass* once created.
109 InstanceKlass* _klass_to_deallocate; // an InstanceKlass* to be destroyed
110
111 ClassAnnotationCollector* _parsed_annotations;
112 FieldAllocationCount* _fac;
113 FieldLayoutInfo* _field_info;
114 const intArray* _method_ordering;
115 GrowableArray<Method*>* _all_mirandas;
116
117 enum { fixed_buffer_size = 128 };
118 u_char _linenumbertable_buffer[fixed_buffer_size];
119
120 // Size of Java vtable (in words)
271 const unsafe_u2* parse_checked_exceptions(const ClassFileStream* const cfs,
272 u2* const checked_exceptions_length,
273 u4 method_attribute_length,
274 TRAPS);
275
276 void parse_type_array(u2 array_length,
277 u4 code_length,
278 u4* const u1_index,
279 u4* const u2_index,
280 u1* const u1_array,
281 u2* const u2_array,
282 TRAPS);
283
284 // Classfile attribute parsing
285 u2 parse_generic_signature_attribute(const ClassFileStream* const cfs, TRAPS);
286 void parse_classfile_sourcefile_attribute(const ClassFileStream* const cfs, TRAPS);
287 void parse_classfile_source_debug_extension_attribute(const ClassFileStream* const cfs,
288 int length,
289 TRAPS);
290
291 u2 parse_classfile_inner_classes_attribute(const ClassFileStream* const cfs,
292 const u1* const inner_classes_attribute_start,
293 bool parsed_enclosingmethod_attribute,
294 u2 enclosing_method_class_index,
295 u2 enclosing_method_method_index,
296 TRAPS);
297
298 void parse_classfile_attributes(const ClassFileStream* const cfs,
299 ConstantPool* cp,
300 ClassAnnotationCollector* parsed_annotations,
301 TRAPS);
302
303 void parse_classfile_synthetic_attribute(TRAPS);
304 void parse_classfile_signature_attribute(const ClassFileStream* const cfs, TRAPS);
305 void parse_classfile_bootstrap_methods_attribute(const ClassFileStream* const cfs,
306 ConstantPool* cp,
307 u4 attribute_length,
308 TRAPS);
309
310 // Annotations handling
|
81
82 const ClassFileStream* _stream; // Actual input stream
83 const Symbol* _requested_name;
84 Symbol* _class_name;
85 mutable ClassLoaderData* _loader_data;
86 const InstanceKlass* _host_klass;
87 GrowableArray<Handle>* _cp_patches; // overrides for CP entries
88 int _num_patched_klasses;
89 int _max_num_patched_klasses;
90 int _orig_cp_size;
91 int _first_patched_klass_resolved_index;
92
93 // Metadata created before the instance klass is created. Must be deallocated
94 // if not transferred to the InstanceKlass upon successful class loading
95 // in which case these pointers have been set to NULL.
96 const InstanceKlass* _super_klass;
97 ConstantPool* _cp;
98 Array<u2>* _fields;
99 Array<Method*>* _methods;
100 Array<u2>* _inner_classes;
101 Array<ValueTypes>* _value_types;
102 Array<Klass*>* _local_interfaces;
103 Array<Klass*>* _transitive_interfaces;
104 Annotations* _combined_annotations;
105 AnnotationArray* _annotations;
106 AnnotationArray* _type_annotations;
107 Array<AnnotationArray*>* _fields_annotations;
108 Array<AnnotationArray*>* _fields_type_annotations;
109 InstanceKlass* _klass; // InstanceKlass* once created.
110 InstanceKlass* _klass_to_deallocate; // an InstanceKlass* to be destroyed
111
112 ClassAnnotationCollector* _parsed_annotations;
113 FieldAllocationCount* _fac;
114 FieldLayoutInfo* _field_info;
115 const intArray* _method_ordering;
116 GrowableArray<Method*>* _all_mirandas;
117
118 enum { fixed_buffer_size = 128 };
119 u_char _linenumbertable_buffer[fixed_buffer_size];
120
121 // Size of Java vtable (in words)
272 const unsafe_u2* parse_checked_exceptions(const ClassFileStream* const cfs,
273 u2* const checked_exceptions_length,
274 u4 method_attribute_length,
275 TRAPS);
276
277 void parse_type_array(u2 array_length,
278 u4 code_length,
279 u4* const u1_index,
280 u4* const u2_index,
281 u1* const u1_array,
282 u2* const u2_array,
283 TRAPS);
284
285 // Classfile attribute parsing
286 u2 parse_generic_signature_attribute(const ClassFileStream* const cfs, TRAPS);
287 void parse_classfile_sourcefile_attribute(const ClassFileStream* const cfs, TRAPS);
288 void parse_classfile_source_debug_extension_attribute(const ClassFileStream* const cfs,
289 int length,
290 TRAPS);
291
292 u2 parse_value_types_attribute(const ClassFileStream* const cfs,
293 const u1* const value_types_attribute_start,
294 TRAPS);
295
296 u2 parse_classfile_inner_classes_attribute(const ClassFileStream* const cfs,
297 const u1* const inner_classes_attribute_start,
298 bool parsed_enclosingmethod_attribute,
299 u2 enclosing_method_class_index,
300 u2 enclosing_method_method_index,
301 TRAPS);
302
303 void parse_classfile_attributes(const ClassFileStream* const cfs,
304 ConstantPool* cp,
305 ClassAnnotationCollector* parsed_annotations,
306 TRAPS);
307
308 void parse_classfile_synthetic_attribute(TRAPS);
309 void parse_classfile_signature_attribute(const ClassFileStream* const cfs, TRAPS);
310 void parse_classfile_bootstrap_methods_attribute(const ClassFileStream* const cfs,
311 ConstantPool* cp,
312 u4 attribute_length,
313 TRAPS);
314
315 // Annotations handling
|