< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page

 201   // The contents of the Record attribute.
 202   Array<RecordComponent*>* _record_components;
 203 
 204   // the source debug extension for this klass, NULL if not specified.
 205   // Specified as UTF-8 string without terminating zero byte in the classfile,
 206   // it is stored in the instanceklass as a NULL-terminated UTF-8 string
 207   const char*     _source_debug_extension;
 208 
 209   // Number of heapOopSize words used by non-static fields in this klass
 210   // (including inherited fields but after header_size()).
 211   int             _nonstatic_field_size;
 212   int             _static_field_size;       // number words used by static fields (oop and non-oop) in this klass
 213   int             _nonstatic_oop_map_size;  // size in words of nonstatic oop map blocks
 214   int             _itable_len;              // length of Java itable (in words)
 215 
 216   // The NestHost attribute. The class info index for the class
 217   // that is the nest-host of this class. This data has not been validated.
 218   u2              _nest_host_index;
 219   u2              _this_class_index;        // constant pool entry
 220   u2              _static_oop_field_count;  // number of 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_status right now.
 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   // State is set while executing, eventually atomically to not disturb other state
 234   InstanceKlassMiscStatus _misc_status;
 235 
 236   Monitor*        _init_monitor;         // mutual exclusion to _init_state and _init_thread.
 237   Thread*         _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

 329   void set_shared_loading_failed() { _misc_status.set_shared_loading_failed(true); }
 330 
 331 #if INCLUDE_CDS
 332   void set_shared_class_loader_type(s2 loader_type) { _misc_status.set_shared_class_loader_type(loader_type); }
 333   void assign_class_loader_type() { _misc_status.assign_class_loader_type(_class_loader_data); }
 334 #endif
 335 
 336   bool has_nonstatic_fields() const        { return _misc_status.has_nonstatic_fields(); }
 337   void set_has_nonstatic_fields(bool b)    { _misc_status.set_has_nonstatic_fields(b); }
 338 
 339   // field sizes
 340   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 341   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 342 
 343   int static_field_size() const            { return _static_field_size; }
 344   void set_static_field_size(int size)     { _static_field_size = size; }
 345 
 346   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 347   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 348 



 349   // Java itable
 350   int  itable_length() const               { return _itable_len; }
 351   void set_itable_length(int len)          { _itable_len = len; }
 352 
 353   // array klasses
 354   ObjArrayKlass* array_klasses() const     { return _array_klasses; }
 355   inline ObjArrayKlass* array_klasses_acquire() const; // load with acquire semantics
 356   inline void release_set_array_klasses(ObjArrayKlass* k); // store with release semantics
 357 
 358   // methods
 359   Array<Method*>* methods() const          { return _methods; }
 360   void set_methods(Array<Method*>* a)      { _methods = a; }
 361   Method* method_with_idnum(int idnum);
 362   Method* method_with_orig_idnum(int idnum);
 363   Method* method_with_orig_idnum(int idnum, int version);
 364 
 365   // method ordering
 366   Array<int>* method_ordering() const     { return _method_ordering; }
 367   void set_method_ordering(Array<int>* m) { _method_ordering = m; }
 368   void copy_method_ordering(const intArray* m, TRAPS);

 201   // The contents of the Record attribute.
 202   Array<RecordComponent*>* _record_components;
 203 
 204   // the source debug extension for this klass, NULL if not specified.
 205   // Specified as UTF-8 string without terminating zero byte in the classfile,
 206   // it is stored in the instanceklass as a NULL-terminated UTF-8 string
 207   const char*     _source_debug_extension;
 208 
 209   // Number of heapOopSize words used by non-static fields in this klass
 210   // (including inherited fields but after header_size()).
 211   int             _nonstatic_field_size;
 212   int             _static_field_size;       // number words used by static fields (oop and non-oop) in this klass
 213   int             _nonstatic_oop_map_size;  // size in words of nonstatic oop map blocks
 214   int             _itable_len;              // length of Java itable (in words)
 215 
 216   // The NestHost attribute. The class info index for the class
 217   // that is the nest-host of this class. This data has not been validated.
 218   u2              _nest_host_index;
 219   u2              _this_class_index;        // constant pool entry
 220   u2              _static_oop_field_count;  // number of static oop fields in this klass
 221   u2              _nonstatic_oop_field_count;// number of non-static oop fields in this klass
 222   u2              _java_fields_count;       // The number of declared Java fields
 223 
 224   volatile u2     _idnum_allocated_count;   // JNI/JVMTI: increments with the addition of methods, old ids don't change
 225 
 226   // _is_marked_dependent can be set concurrently, thus cannot be part of the
 227   // _misc_status right now.
 228   bool            _is_marked_dependent;     // used for marking during flushing and deoptimization
 229 
 230   ClassState      _init_state;              // state of class
 231 
 232   u1              _reference_type;          // reference type
 233 
 234   // State is set while executing, eventually atomically to not disturb other state
 235   InstanceKlassMiscStatus _misc_status;
 236 
 237   Monitor*        _init_monitor;         // mutual exclusion to _init_state and _init_thread.
 238   Thread*         _init_thread;          // Pointer to current thread doing initialization (to handle recursive initialization)
 239 
 240   OopMapCache*    volatile _oop_map_cache;   // OopMapCache for all methods in the klass (allocated lazily)
 241   JNIid*          _jni_ids;              // First JNI identifier for static fields in this class

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