src/share/vm/oops/annotations.hpp

changeset 4572
927a311d00f9
parent 4497
16fb9f942703
child 6876
710a3c8b516e
     1.1 --- a/src/share/vm/oops/annotations.hpp	Fri Feb 08 16:56:03 2013 -0800
     1.2 +++ b/src/share/vm/oops/annotations.hpp	Mon Feb 11 14:06:22 2013 -0500
     1.3 @@ -49,38 +49,15 @@
     1.4    // Annotation objects (byte arrays) for fields, or null if no annotations.
     1.5    // Indices correspond to entries (not indices) in fields array.
     1.6    Array<AnnotationArray*>*     _fields_annotations;
     1.7 -  // Annotation objects (byte arrays) for methods, or null if no annotations.
     1.8 -  // Index is the idnum, which is initially the same as the methods array index.
     1.9 -  Array<AnnotationArray*>*     _methods_annotations;
    1.10 -  // Annotation objects (byte arrays) for methods' parameters, or null if no
    1.11 -  // such annotations.
    1.12 -  // Index is the idnum, which is initially the same as the methods array index.
    1.13 -  Array<AnnotationArray*>*     _methods_parameter_annotations;
    1.14 -  // Annotation objects (byte arrays) for methods' default values, or null if no
    1.15 -  // such annotations.
    1.16 -  // Index is the idnum, which is initially the same as the methods array index.
    1.17 -  Array<AnnotationArray*>*     _methods_default_annotations;
    1.18    // Type annotations for this class, or null if none.
    1.19 -  Annotations*                 _type_annotations;
    1.20 -
    1.21 -  // Constructor where some some values are known to not be null
    1.22 -  Annotations(Array<AnnotationArray*>* fa, Array<AnnotationArray*>* ma,
    1.23 -              Array<AnnotationArray*>* mpa, Array<AnnotationArray*>* mda) :
    1.24 -                 _class_annotations(NULL),
    1.25 -                 _fields_annotations(fa),
    1.26 -                 _methods_annotations(ma),
    1.27 -                 _methods_parameter_annotations(mpa),
    1.28 -                 _methods_default_annotations(mda),
    1.29 -                 _type_annotations(NULL) {}
    1.30 +  AnnotationArray*             _class_type_annotations;
    1.31 +  Array<AnnotationArray*>*     _fields_type_annotations;
    1.32  
    1.33   public:
    1.34    // Allocate instance of this class
    1.35    static Annotations* allocate(ClassLoaderData* loader_data, TRAPS);
    1.36 -  static Annotations* allocate(ClassLoaderData* loader_data,
    1.37 -                               Array<AnnotationArray*>* fa,
    1.38 -                               Array<AnnotationArray*>* ma,
    1.39 -                               Array<AnnotationArray*>* mpa,
    1.40 -                               Array<AnnotationArray*>* mda, TRAPS);
    1.41 +
    1.42 +  static void free_contents(ClassLoaderData* loader_data, Array<AnnotationArray*>* p);
    1.43    void deallocate_contents(ClassLoaderData* loader_data);
    1.44    DEBUG_ONLY(bool on_stack() { return false; })  // for template
    1.45  
    1.46 @@ -93,61 +70,24 @@
    1.47    // Constructor to initialize to null
    1.48    Annotations() : _class_annotations(NULL),
    1.49                    _fields_annotations(NULL),
    1.50 -                  _methods_annotations(NULL),
    1.51 -                  _methods_parameter_annotations(NULL),
    1.52 -                  _methods_default_annotations(NULL),
    1.53 -                  _type_annotations(NULL) {}
    1.54 +                  _class_type_annotations(NULL),
    1.55 +                  _fields_type_annotations(NULL) {}
    1.56  
    1.57    AnnotationArray* class_annotations() const                       { return _class_annotations; }
    1.58    Array<AnnotationArray*>* fields_annotations() const              { return _fields_annotations; }
    1.59 -  Array<AnnotationArray*>* methods_annotations() const             { return _methods_annotations; }
    1.60 -  Array<AnnotationArray*>* methods_parameter_annotations() const   { return _methods_parameter_annotations; }
    1.61 -  Array<AnnotationArray*>* methods_default_annotations() const     { return _methods_default_annotations; }
    1.62 -  Annotations* type_annotations() const                            { return _type_annotations; }
    1.63 +  AnnotationArray* class_type_annotations() const                  { return _class_type_annotations; }
    1.64 +  Array<AnnotationArray*>* fields_type_annotations() const         { return _fields_type_annotations; }
    1.65  
    1.66    void set_class_annotations(AnnotationArray* md)                     { _class_annotations = md; }
    1.67    void set_fields_annotations(Array<AnnotationArray*>* md)            { _fields_annotations = md; }
    1.68 -  void set_methods_annotations(Array<AnnotationArray*>* md)           { _methods_annotations = md; }
    1.69 -  void set_methods_parameter_annotations(Array<AnnotationArray*>* md) { _methods_parameter_annotations = md; }
    1.70 -  void set_methods_default_annotations(Array<AnnotationArray*>* md)   { _methods_default_annotations = md; }
    1.71 -  void set_type_annotations(Annotations* annos)                       { _type_annotations = annos; }
    1.72 -
    1.73 -  // Redefine classes support
    1.74 -  AnnotationArray* get_method_annotations_of(int idnum)
    1.75 -                                                { return get_method_annotations_from(idnum, _methods_annotations); }
    1.76 -
    1.77 -  AnnotationArray* get_method_parameter_annotations_of(int idnum)
    1.78 -                                                { return get_method_annotations_from(idnum, _methods_parameter_annotations); }
    1.79 -  AnnotationArray* get_method_default_annotations_of(int idnum)
    1.80 -                                                { return get_method_annotations_from(idnum, _methods_default_annotations); }
    1.81 -
    1.82 -
    1.83 -  void set_method_annotations_of(instanceKlassHandle ik,
    1.84 -                                 int idnum, AnnotationArray* anno, TRAPS) {
    1.85 -    set_methods_annotations_of(ik, idnum, anno, &_methods_annotations, THREAD);
    1.86 -  }
    1.87 -
    1.88 -  void set_method_parameter_annotations_of(instanceKlassHandle ik,
    1.89 -                                 int idnum, AnnotationArray* anno, TRAPS) {
    1.90 -    set_methods_annotations_of(ik, idnum, anno, &_methods_parameter_annotations, THREAD);
    1.91 -  }
    1.92 -
    1.93 -  void set_method_default_annotations_of(instanceKlassHandle ik,
    1.94 -                                 int idnum, AnnotationArray* anno, TRAPS) {
    1.95 -    set_methods_annotations_of(ik, idnum, anno, &_methods_default_annotations, THREAD);
    1.96 -  }
    1.97 +  void set_class_type_annotations(AnnotationArray* cta)               { _class_type_annotations = cta; }
    1.98 +  void set_fields_type_annotations(Array<AnnotationArray*>* fta)      { _fields_type_annotations = fta; }
    1.99  
   1.100    // Turn metadata annotations into a Java heap object (oop)
   1.101    static typeArrayOop make_java_array(AnnotationArray* annotations, TRAPS);
   1.102  
   1.103 -  inline AnnotationArray* get_method_annotations_from(int idnum, Array<AnnotationArray*>* annos);
   1.104 -  void set_annotations(Array<AnnotationArray*>* md, Array<AnnotationArray*>** md_p)  { *md_p = md; }
   1.105 -
   1.106    bool is_klass() const { return false; }
   1.107   private:
   1.108 -  void set_methods_annotations_of(instanceKlassHandle ik,
   1.109 -                                  int idnum, AnnotationArray* anno,
   1.110 -                                  Array<AnnotationArray*>** md_p, TRAPS);
   1.111    static julong count_bytes(Array<AnnotationArray*>* p);
   1.112   public:
   1.113    const char* internal_name() const { return "{constant pool}"; }
   1.114 @@ -156,13 +96,4 @@
   1.115  #endif
   1.116    void print_value_on(outputStream* st) const;
   1.117  };
   1.118 -
   1.119 -
   1.120 -// For method with idnum get the method's Annotations
   1.121 -inline AnnotationArray* Annotations::get_method_annotations_from(int idnum, Array<AnnotationArray*>* annos) {
   1.122 -  if (annos == NULL || annos->length() <= idnum) {
   1.123 -    return NULL;
   1.124 -  }
   1.125 -  return annos->at(idnum);
   1.126 -}
   1.127  #endif // SHARE_VM_OOPS_ANNOTATIONS_HPP

mercurial