src/share/vm/classfile/classFileParser.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7198429 Sdiff src/share/vm/classfile

src/share/vm/classfile/classFileParser.hpp

Print this page




 102   void apply_parsed_class_attributes(instanceKlassHandle k);  // update k
 103   void apply_parsed_class_metadata(instanceKlassHandle k, int fields_count, TRAPS);
 104   void clear_class_metadata() {
 105     // metadata created before the instance klass is created.  Must be
 106     // deallocated if classfile parsing returns an error.
 107     _cp = NULL;
 108     _fields = NULL;
 109     _methods = NULL;
 110     _inner_classes = NULL;
 111     _local_interfaces = NULL;
 112     _transitive_interfaces = NULL;
 113     _annotations = _type_annotations = NULL;
 114     _fields_annotations = _fields_type_annotations = NULL;
 115   }
 116 
 117   class AnnotationCollector {
 118   public:
 119     enum Location { _in_field, _in_method, _in_class };
 120     enum ID {
 121       _unknown = 0,

 122       _method_ForceInline,
 123       _method_DontInline,
 124       _method_LambdaForm_Compiled,
 125       _method_LambdaForm_Hidden,
 126       _sun_misc_Contended,
 127       _annotation_LIMIT
 128     };
 129     const Location _location;
 130     int _annotations_present;
 131     u2 _contended_group;
 132 
 133     AnnotationCollector(Location location)
 134     : _location(location), _annotations_present(0)
 135     {
 136       assert((int)_annotation_LIMIT <= (int)sizeof(_annotations_present) * BitsPerByte, "");
 137     }
 138     // If this annotation name has an ID, report it (or _none).
 139     ID annotation_index(ClassLoaderData* loader_data, Symbol* name);
 140     // Set the annotation name:
 141     void set_annotation(ID id) {




 102   void apply_parsed_class_attributes(instanceKlassHandle k);  // update k
 103   void apply_parsed_class_metadata(instanceKlassHandle k, int fields_count, TRAPS);
 104   void clear_class_metadata() {
 105     // metadata created before the instance klass is created.  Must be
 106     // deallocated if classfile parsing returns an error.
 107     _cp = NULL;
 108     _fields = NULL;
 109     _methods = NULL;
 110     _inner_classes = NULL;
 111     _local_interfaces = NULL;
 112     _transitive_interfaces = NULL;
 113     _annotations = _type_annotations = NULL;
 114     _fields_annotations = _fields_type_annotations = NULL;
 115   }
 116 
 117   class AnnotationCollector {
 118   public:
 119     enum Location { _in_field, _in_method, _in_class };
 120     enum ID {
 121       _unknown = 0,
 122       _method_CallerSensitive,
 123       _method_ForceInline,
 124       _method_DontInline,
 125       _method_LambdaForm_Compiled,
 126       _method_LambdaForm_Hidden,
 127       _sun_misc_Contended,
 128       _annotation_LIMIT
 129     };
 130     const Location _location;
 131     int _annotations_present;
 132     u2 _contended_group;
 133 
 134     AnnotationCollector(Location location)
 135     : _location(location), _annotations_present(0)
 136     {
 137       assert((int)_annotation_LIMIT <= (int)sizeof(_annotations_present) * BitsPerByte, "");
 138     }
 139     // If this annotation name has an ID, report it (or _none).
 140     ID annotation_index(ClassLoaderData* loader_data, Symbol* name);
 141     // Set the annotation name:
 142     void set_annotation(ID id) {


src/share/vm/classfile/classFileParser.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File