< prev index next >

src/hotspot/share/classfile/classFileParser.hpp

Print this page




  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


< prev index next >