hotspot/src/share/vm/classfile/classFileParser.hpp
changeset 13952 e3cf184080bc
parent 13728 882756847a04
child 13974 791cba24758f
equal deleted inserted replaced
13918:b01a48301e67 13952:e3cf184080bc
   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);