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