< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page

 200   // The contents of the Record attribute.
 201   Array<RecordComponent*>* _record_components;
 202 
 203   // the source debug extension for this klass, NULL if not specified.
 204   // Specified as UTF-8 string without terminating zero byte in the classfile,
 205   // it is stored in the instanceklass as a NULL-terminated UTF-8 string
 206   const char*     _source_debug_extension;
 207 
 208   // Number of heapOopSize words used by non-static fields in this klass
 209   // (including inherited fields but after header_size()).
 210   int             _nonstatic_field_size;
 211   int             _static_field_size;       // number words used by static fields (oop and non-oop) in this klass
 212   int             _nonstatic_oop_map_size;  // size in words of nonstatic oop map blocks
 213   int             _itable_len;              // length of Java itable (in words)
 214 
 215   // The NestHost attribute. The class info index for the class
 216   // that is the nest-host of this class. This data has not been validated.
 217   u2              _nest_host_index;
 218   u2              _this_class_index;        // constant pool entry
 219   u2              _static_oop_field_count;  // number of static oop fields in this klass

 220   u2              _java_fields_count;       // The number of declared Java fields
 221 
 222   volatile u2     _idnum_allocated_count;   // JNI/JVMTI: increments with the addition of methods, old ids don't change
 223 
 224   // _is_marked_dependent can be set concurrently, thus cannot be part of the
 225   // _misc_flags.
 226   bool            _is_marked_dependent;     // used for marking during flushing and deoptimization
 227 
 228   ClassState      _init_state;              // state of class
 229 
 230   u1              _reference_type;          // reference type
 231 
 232   enum {
 233     _misc_rewritten                           = 1 << 0,  // methods rewritten.
 234     _misc_has_nonstatic_fields                = 1 << 1,  // for sizing with UseCompressedOops
 235     _misc_should_verify_class                 = 1 << 2,  // allow caching of preverification
 236     _misc_unused                              = 1 << 3,  // not currently used
 237     _misc_is_contended                        = 1 << 4,  // marked with contended annotation
 238     _misc_has_nonstatic_concrete_methods      = 1 << 5,  // class/superclass/implemented interfaces has non-static, concrete methods
 239     _misc_declares_nonstatic_concrete_methods = 1 << 6,  // directly declares non-static, concrete methods

 364   bool has_nonstatic_fields() const        {
 365     return (_misc_flags & _misc_has_nonstatic_fields) != 0;
 366   }
 367   void set_has_nonstatic_fields(bool b)    {
 368     assert(!has_nonstatic_fields(), "set once");
 369     if (b) {
 370       _misc_flags |= _misc_has_nonstatic_fields;
 371     }
 372   }
 373 
 374   // field sizes
 375   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 376   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 377 
 378   int static_field_size() const            { return _static_field_size; }
 379   void set_static_field_size(int size)     { _static_field_size = size; }
 380 
 381   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 382   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 383 



 384   // Java itable
 385   int  itable_length() const               { return _itable_len; }
 386   void set_itable_length(int len)          { _itable_len = len; }
 387 
 388   // array klasses
 389   ObjArrayKlass* array_klasses() const     { return _array_klasses; }
 390   inline ObjArrayKlass* array_klasses_acquire() const; // load with acquire semantics
 391   inline void release_set_array_klasses(ObjArrayKlass* k); // store with release semantics
 392 
 393   // methods
 394   Array<Method*>* methods() const          { return _methods; }
 395   void set_methods(Array<Method*>* a)      { _methods = a; }
 396   Method* method_with_idnum(int idnum);
 397   Method* method_with_orig_idnum(int idnum);
 398   Method* method_with_orig_idnum(int idnum, int version);
 399 
 400   // method ordering
 401   Array<int>* method_ordering() const     { return _method_ordering; }
 402   void set_method_ordering(Array<int>* m) { _method_ordering = m; }
 403   void copy_method_ordering(const intArray* m, TRAPS);

 200   // The contents of the Record attribute.
 201   Array<RecordComponent*>* _record_components;
 202 
 203   // the source debug extension for this klass, NULL if not specified.
 204   // Specified as UTF-8 string without terminating zero byte in the classfile,
 205   // it is stored in the instanceklass as a NULL-terminated UTF-8 string
 206   const char*     _source_debug_extension;
 207 
 208   // Number of heapOopSize words used by non-static fields in this klass
 209   // (including inherited fields but after header_size()).
 210   int             _nonstatic_field_size;
 211   int             _static_field_size;       // number words used by static fields (oop and non-oop) in this klass
 212   int             _nonstatic_oop_map_size;  // size in words of nonstatic oop map blocks
 213   int             _itable_len;              // length of Java itable (in words)
 214 
 215   // The NestHost attribute. The class info index for the class
 216   // that is the nest-host of this class. This data has not been validated.
 217   u2              _nest_host_index;
 218   u2              _this_class_index;        // constant pool entry
 219   u2              _static_oop_field_count;  // number of static oop fields in this klass
 220   u2              _nonstatic_oop_field_count;// number of non-static oop fields in this klass
 221   u2              _java_fields_count;       // The number of declared Java fields
 222 
 223   volatile u2     _idnum_allocated_count;   // JNI/JVMTI: increments with the addition of methods, old ids don't change
 224 
 225   // _is_marked_dependent can be set concurrently, thus cannot be part of the
 226   // _misc_flags.
 227   bool            _is_marked_dependent;     // used for marking during flushing and deoptimization
 228 
 229   ClassState      _init_state;              // state of class
 230 
 231   u1              _reference_type;          // reference type
 232 
 233   enum {
 234     _misc_rewritten                           = 1 << 0,  // methods rewritten.
 235     _misc_has_nonstatic_fields                = 1 << 1,  // for sizing with UseCompressedOops
 236     _misc_should_verify_class                 = 1 << 2,  // allow caching of preverification
 237     _misc_unused                              = 1 << 3,  // not currently used
 238     _misc_is_contended                        = 1 << 4,  // marked with contended annotation
 239     _misc_has_nonstatic_concrete_methods      = 1 << 5,  // class/superclass/implemented interfaces has non-static, concrete methods
 240     _misc_declares_nonstatic_concrete_methods = 1 << 6,  // directly declares non-static, concrete methods

 365   bool has_nonstatic_fields() const        {
 366     return (_misc_flags & _misc_has_nonstatic_fields) != 0;
 367   }
 368   void set_has_nonstatic_fields(bool b)    {
 369     assert(!has_nonstatic_fields(), "set once");
 370     if (b) {
 371       _misc_flags |= _misc_has_nonstatic_fields;
 372     }
 373   }
 374 
 375   // field sizes
 376   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 377   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 378 
 379   int static_field_size() const            { return _static_field_size; }
 380   void set_static_field_size(int size)     { _static_field_size = size; }
 381 
 382   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 383   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 384 
 385   int nonstatic_oop_field_count() const       { return (int)_nonstatic_oop_field_count; }
 386   void set_nonstatic_oop_field_count(u2 size) { _nonstatic_oop_field_count = size; }
 387 
 388   // Java itable
 389   int  itable_length() const               { return _itable_len; }
 390   void set_itable_length(int len)          { _itable_len = len; }
 391 
 392   // array klasses
 393   ObjArrayKlass* array_klasses() const     { return _array_klasses; }
 394   inline ObjArrayKlass* array_klasses_acquire() const; // load with acquire semantics
 395   inline void release_set_array_klasses(ObjArrayKlass* k); // store with release semantics
 396 
 397   // methods
 398   Array<Method*>* methods() const          { return _methods; }
 399   void set_methods(Array<Method*>* a)      { _methods = a; }
 400   Method* method_with_idnum(int idnum);
 401   Method* method_with_orig_idnum(int idnum);
 402   Method* method_with_orig_idnum(int idnum, int version);
 403 
 404   // method ordering
 405   Array<int>* method_ordering() const     { return _method_ordering; }
 406   void set_method_ordering(Array<int>* m) { _method_ordering = m; }
 407   void copy_method_ordering(const intArray* m, TRAPS);
< prev index next >