src/share/vm/oops/instanceKlass.hpp

Print this page




 318   // interfaces
 319   objArrayOop local_interfaces() const          { return _local_interfaces; }
 320   void set_local_interfaces(objArrayOop a)      { oop_store_without_check((oop*) &_local_interfaces, (oop) a); }
 321   objArrayOop transitive_interfaces() const     { return _transitive_interfaces; }
 322   void set_transitive_interfaces(objArrayOop a) { oop_store_without_check((oop*) &_transitive_interfaces, (oop) a); }
 323 
 324  private:
 325   friend class fieldDescriptor;
 326   FieldInfo* field(int index) const { return FieldInfo::from_field_array(_fields, index); }
 327 
 328  public:
 329   int     field_offset      (int index) const { return field(index)->offset(); }
 330   int     field_access_flags(int index) const { return field(index)->access_flags(); }
 331   Symbol* field_name        (int index) const { return field(index)->name(constants()); }
 332   Symbol* field_signature   (int index) const { return field(index)->signature(constants()); }
 333 
 334   // Number of Java declared fields
 335   int java_fields_count() const           { return (int)_java_fields_count; }
 336 
 337   // Number of fields including any injected fields
 338   int all_fields_count() const            { return _fields->length() / sizeof(FieldInfo::field_slots); }
 339 
 340   typeArrayOop fields() const              { return _fields; }
 341 
 342   void set_fields(typeArrayOop f, u2 java_fields_count) {
 343     oop_store_without_check((oop*) &_fields, (oop) f);
 344     _java_fields_count = java_fields_count;
 345   }
 346 
 347   // inner classes
 348   typeArrayOop inner_classes() const       { return _inner_classes; }
 349   void set_inner_classes(typeArrayOop f)   { oop_store_without_check((oop*) &_inner_classes, (oop) f); }
 350 
 351   enum InnerClassAttributeOffset {
 352     // From http://mirror.eng/products/jdk/1.1/docs/guide/innerclasses/spec/innerclasses.doc10.html#18814
 353     inner_class_inner_class_info_offset = 0,
 354     inner_class_outer_class_info_offset = 1,
 355     inner_class_inner_name_offset = 2,
 356     inner_class_access_flags_offset = 3,
 357     inner_class_next_offset = 4
 358   };




 318   // interfaces
 319   objArrayOop local_interfaces() const          { return _local_interfaces; }
 320   void set_local_interfaces(objArrayOop a)      { oop_store_without_check((oop*) &_local_interfaces, (oop) a); }
 321   objArrayOop transitive_interfaces() const     { return _transitive_interfaces; }
 322   void set_transitive_interfaces(objArrayOop a) { oop_store_without_check((oop*) &_transitive_interfaces, (oop) a); }
 323 
 324  private:
 325   friend class fieldDescriptor;
 326   FieldInfo* field(int index) const { return FieldInfo::from_field_array(_fields, index); }
 327 
 328  public:
 329   int     field_offset      (int index) const { return field(index)->offset(); }
 330   int     field_access_flags(int index) const { return field(index)->access_flags(); }
 331   Symbol* field_name        (int index) const { return field(index)->name(constants()); }
 332   Symbol* field_signature   (int index) const { return field(index)->signature(constants()); }
 333 
 334   // Number of Java declared fields
 335   int java_fields_count() const           { return (int)_java_fields_count; }
 336 
 337   // Number of fields including any injected fields
 338   int all_fields_count() const            { return _fields->length() / FieldInfo::field_slots; }
 339 
 340   typeArrayOop fields() const              { return _fields; }
 341 
 342   void set_fields(typeArrayOop f, u2 java_fields_count) {
 343     oop_store_without_check((oop*) &_fields, (oop) f);
 344     _java_fields_count = java_fields_count;
 345   }
 346 
 347   // inner classes
 348   typeArrayOop inner_classes() const       { return _inner_classes; }
 349   void set_inner_classes(typeArrayOop f)   { oop_store_without_check((oop*) &_inner_classes, (oop) f); }
 350 
 351   enum InnerClassAttributeOffset {
 352     // From http://mirror.eng/products/jdk/1.1/docs/guide/innerclasses/spec/innerclasses.doc10.html#18814
 353     inner_class_inner_class_info_offset = 0,
 354     inner_class_outer_class_info_offset = 1,
 355     inner_class_inner_name_offset = 2,
 356     inner_class_access_flags_offset = 3,
 357     inner_class_next_offset = 4
 358   };