< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page

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


 226 
 227   volatile u2     _idnum_allocated_count;   // JNI/JVMTI: increments with the addition of methods, old ids don't change
 228 
 229   volatile ClassState _init_state;          // state of class
 230 
 231   u1              _reference_type;          // reference type
 232 
 233   // State is set either at parse time or while executing, atomically to not disturb other state
 234   InstanceKlassFlags _misc_flags;
 235 
 236   Monitor*             _init_monitor;       // mutual exclusion to _init_state and _init_thread.
 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;
 244   nmethod*        _osr_nmethods_head;    // Head of list of on-stack replacement nmethods for this class
 245 #if INCLUDE_JVMTI

 322   void set_shared_class_loader_type(s2 loader_type) { _misc_flags.set_shared_class_loader_type(loader_type); }
 323   void assign_class_loader_type() { _misc_flags.assign_class_loader_type(_class_loader_data); }
 324 #endif
 325 
 326   bool has_nonstatic_fields() const        { return _misc_flags.has_nonstatic_fields(); }
 327   void set_has_nonstatic_fields(bool b)    { _misc_flags.set_has_nonstatic_fields(b); }
 328 
 329   bool has_localvariable_table() const     { return _misc_flags.has_localvariable_table(); }
 330   void set_has_localvariable_table(bool b) { _misc_flags.set_has_localvariable_table(b); }
 331 
 332   // field sizes
 333   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 334   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 335 
 336   int static_field_size() const            { return _static_field_size; }
 337   void set_static_field_size(int size)     { _static_field_size = size; }
 338 
 339   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 340   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 341 



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

 206   // The contents of the Record attribute.
 207   Array<RecordComponent*>* _record_components;
 208 
 209   // the source debug extension for this klass, null if not specified.
 210   // Specified as UTF-8 string without terminating zero byte in the classfile,
 211   // it is stored in the instanceklass as a null-terminated UTF-8 string
 212   const char*     _source_debug_extension;
 213 
 214   // Number of heapOopSize words used by non-static fields in this klass
 215   // (including inherited fields but after header_size()).
 216   int             _nonstatic_field_size;
 217   int             _static_field_size;       // number words used by static fields (oop and non-oop) in this klass
 218   int             _nonstatic_oop_map_size;  // size in words of nonstatic oop map blocks
 219   int             _itable_len;              // length of Java itable (in words)
 220 
 221   // The NestHost attribute. The class info index for the class
 222   // that is the nest-host of this class. This data has not been validated.
 223   u2              _nest_host_index;
 224   u2              _this_class_index;        // constant pool entry
 225   u2              _static_oop_field_count;  // number of static oop fields in this klass
 226   u2              _nonstatic_oop_field_count;// number of non-static oop fields in this klass
 227   u2              _java_fields_count;       // The number of declared Java fields
 228 
 229   volatile u2     _idnum_allocated_count;   // JNI/JVMTI: increments with the addition of methods, old ids don't change
 230 
 231   volatile ClassState _init_state;          // state of class
 232 
 233   u1              _reference_type;          // reference type
 234 
 235   // State is set either at parse time or while executing, atomically to not disturb other state
 236   InstanceKlassFlags _misc_flags;
 237 
 238   Monitor*             _init_monitor;       // mutual exclusion to _init_state and _init_thread.
 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;
 246   nmethod*        _osr_nmethods_head;    // Head of list of on-stack replacement nmethods for this class
 247 #if INCLUDE_JVMTI

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