< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page

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


 224 
 225   volatile u2     _idnum_allocated_count;   // JNI/JVMTI: increments with the addition of methods, old ids don't change
 226 
 227   // Class states are defined as ClassState (see above).
 228   // Place the _init_state here to utilize the unused 2-byte after
 229   // _idnum_allocated_count.
 230   volatile ClassState _init_state;          // state of class
 231 
 232   u1              _reference_type;                // reference type
 233 
 234   // State is set either at parse time or while executing, atomically to not disturb other state
 235   InstanceKlassFlags _misc_flags;
 236 
 237   JavaThread* volatile _init_thread;        // Pointer to current thread doing initialization (to handle recursive initialization)
 238 
 239   OopMapCache*    volatile _oop_map_cache;   // OopMapCache for all methods in the klass (allocated lazily)
 240   JNIid*          _jni_ids;                  // First JNI identifier for static fields in this class
 241   jmethodID* volatile _methods_jmethod_ids;  // jmethodIDs corresponding to method_idnum, or null if none
 242   nmethodBucket*  volatile _dep_context;     // packed DependencyContext structure
 243   uint64_t        volatile _dep_context_last_cleaned;

 318   bool shared_loading_failed() const { return _misc_flags.shared_loading_failed(); }
 319 
 320   void set_shared_loading_failed() { _misc_flags.set_shared_loading_failed(true); }
 321 
 322   bool has_nonstatic_fields() const        { return _misc_flags.has_nonstatic_fields(); }
 323   void set_has_nonstatic_fields(bool b)    { _misc_flags.set_has_nonstatic_fields(b); }
 324 
 325   bool has_localvariable_table() const     { return _misc_flags.has_localvariable_table(); }
 326   void set_has_localvariable_table(bool b) { _misc_flags.set_has_localvariable_table(b); }
 327 
 328   // field sizes
 329   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 330   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 331 
 332   int static_field_size() const            { return _static_field_size; }
 333   void set_static_field_size(int size)     { _static_field_size = size; }
 334 
 335   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 336   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 337 



 338   // Java itable
 339   int  itable_length() const               { return _itable_len; }
 340   void set_itable_length(int len)          { _itable_len = len; }
 341 
 342   // array klasses
 343   ObjArrayKlass* array_klasses() const     { return _array_klasses; }
 344   inline ObjArrayKlass* array_klasses_acquire() const; // load with acquire semantics
 345   inline void release_set_array_klasses(ObjArrayKlass* k); // store with release semantics
 346   void set_array_klasses(ObjArrayKlass* k) { _array_klasses = k; }
 347 
 348   // methods
 349   Array<Method*>* methods() const          { return _methods; }
 350   void set_methods(Array<Method*>* a)      { _methods = a; }
 351   Method* method_with_idnum(int idnum) const;
 352   Method* method_with_orig_idnum(int idnum) const;
 353   Method* method_with_orig_idnum(int idnum, int version) const;
 354 
 355   // method ordering
 356   Array<int>* method_ordering() const     { return _method_ordering; }
 357   void set_method_ordering(Array<int>* m) { _method_ordering = m; }

 204   // The contents of the Record attribute.
 205   Array<RecordComponent*>* _record_components;
 206 
 207   // the source debug extension for this klass, null if not specified.
 208   // Specified as UTF-8 string without terminating zero byte in the classfile,
 209   // it is stored in the instanceklass as a null-terminated UTF-8 string
 210   const char*     _source_debug_extension;
 211 
 212   // Number of heapOopSize words used by non-static fields in this klass
 213   // (including inherited fields but after header_size()).
 214   int             _nonstatic_field_size;
 215   int             _static_field_size;       // number words used by static fields (oop and non-oop) in this klass
 216   int             _nonstatic_oop_map_size;  // size in words of nonstatic oop map blocks
 217   int             _itable_len;              // length of Java itable (in words)
 218 
 219   // The NestHost attribute. The class info index for the class
 220   // that is the nest-host of this class. This data has not been validated.
 221   u2              _nest_host_index;
 222   u2              _this_class_index;        // constant pool entry
 223   u2              _static_oop_field_count;  // number of static oop fields in this klass
 224   u2              _nonstatic_oop_field_count;// number of non-static oop fields in this klass
 225   u2              _java_fields_count;       // The number of declared Java fields
 226 
 227   volatile u2     _idnum_allocated_count;   // JNI/JVMTI: increments with the addition of methods, old ids don't change
 228 
 229   // Class states are defined as ClassState (see above).
 230   // Place the _init_state here to utilize the unused 2-byte after
 231   // _idnum_allocated_count.
 232   volatile ClassState _init_state;          // state of class
 233 
 234   u1              _reference_type;                // reference type
 235 
 236   // State is set either at parse time or while executing, atomically to not disturb other state
 237   InstanceKlassFlags _misc_flags;
 238 
 239   JavaThread* volatile _init_thread;        // Pointer to current thread doing initialization (to handle recursive initialization)
 240 
 241   OopMapCache*    volatile _oop_map_cache;   // OopMapCache for all methods in the klass (allocated lazily)
 242   JNIid*          _jni_ids;                  // First JNI identifier for static fields in this class
 243   jmethodID* volatile _methods_jmethod_ids;  // jmethodIDs corresponding to method_idnum, or null if none
 244   nmethodBucket*  volatile _dep_context;     // packed DependencyContext structure
 245   uint64_t        volatile _dep_context_last_cleaned;

 320   bool shared_loading_failed() const { return _misc_flags.shared_loading_failed(); }
 321 
 322   void set_shared_loading_failed() { _misc_flags.set_shared_loading_failed(true); }
 323 
 324   bool has_nonstatic_fields() const        { return _misc_flags.has_nonstatic_fields(); }
 325   void set_has_nonstatic_fields(bool b)    { _misc_flags.set_has_nonstatic_fields(b); }
 326 
 327   bool has_localvariable_table() const     { return _misc_flags.has_localvariable_table(); }
 328   void set_has_localvariable_table(bool b) { _misc_flags.set_has_localvariable_table(b); }
 329 
 330   // field sizes
 331   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 332   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 333 
 334   int static_field_size() const            { return _static_field_size; }
 335   void set_static_field_size(int size)     { _static_field_size = size; }
 336 
 337   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 338   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 339 
 340   int nonstatic_oop_field_count() const       { return (int)_nonstatic_oop_field_count; }
 341   void set_nonstatic_oop_field_count(u2 size) { _nonstatic_oop_field_count = size; }
 342 
 343   // Java itable
 344   int  itable_length() const               { return _itable_len; }
 345   void set_itable_length(int len)          { _itable_len = len; }
 346 
 347   // array klasses
 348   ObjArrayKlass* array_klasses() const     { return _array_klasses; }
 349   inline ObjArrayKlass* array_klasses_acquire() const; // load with acquire semantics
 350   inline void release_set_array_klasses(ObjArrayKlass* k); // store with release semantics
 351   void set_array_klasses(ObjArrayKlass* k) { _array_klasses = k; }
 352 
 353   // methods
 354   Array<Method*>* methods() const          { return _methods; }
 355   void set_methods(Array<Method*>* a)      { _methods = a; }
 356   Method* method_with_idnum(int idnum) const;
 357   Method* method_with_orig_idnum(int idnum) const;
 358   Method* method_with_orig_idnum(int idnum, int version) const;
 359 
 360   // method ordering
 361   Array<int>* method_ordering() const     { return _method_ordering; }
 362   void set_method_ordering(Array<int>* m) { _method_ordering = m; }
< prev index next >