< prev index next >

src/hotspot/share/classfile/classFileParser.hpp

Print this page
rev 50604 : imported patch jep181-rev1


  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 


< prev index next >