< prev index next >

src/hotspot/share/oops/instanceKlass.hpp

Print this page




 189   const char*     _source_debug_extension;
 190   // Array name derived from this class which needs unreferencing
 191   // if this class is unloaded.
 192   Symbol*         _array_name;
 193 
 194   // Number of heapOopSize words used by non-static fields in this klass
 195   // (including inherited fields but after header_size()).
 196   int             _nonstatic_field_size;
 197   int             _static_field_size;    // number words used by static fields (oop and non-oop) in this klass
 198   // Constant pool index to the utf8 entry of the Generic signature,
 199   // or 0 if none.
 200   u2              _generic_signature_index;
 201   // Constant pool index to the utf8 entry for the name of source file
 202   // containing this klass, 0 if not specified.
 203   u2              _source_file_name_index;
 204   u2              _static_oop_field_count;// number of static oop fields in this klass
 205   u2              _java_fields_count;    // The number of declared Java fields
 206   int             _nonstatic_oop_map_size;// size in words of nonstatic oop map blocks
 207 
 208   int             _itable_len;           // length of Java itable (in words)



 209   // _is_marked_dependent can be set concurrently, thus cannot be part of the
 210   // _misc_flags.
 211   bool            _is_marked_dependent;  // used for marking during flushing and deoptimization
 212   bool            _is_being_redefined;   // used for locking redefinition
 213 
 214   // The low two bits of _misc_flags contains the kind field.
 215   // This can be used to quickly discriminate among the four kinds of
 216   // InstanceKlass.
 217 
 218   static const unsigned _misc_kind_field_size = 2;
 219   static const unsigned _misc_kind_field_pos  = 0;
 220   static const unsigned _misc_kind_field_mask = (1u << _misc_kind_field_size) - 1u;
 221 
 222   static const unsigned _misc_kind_other        = 0; // concrete InstanceKlass
 223   static const unsigned _misc_kind_reference    = 1; // InstanceRefKlass
 224   static const unsigned _misc_kind_class_loader = 2; // InstanceClassLoaderKlass
 225   static const unsigned _misc_kind_mirror       = 3; // InstanceMirrorKlass
 226 
 227   // Start after _misc_kind field.
 228   enum {


 373     if (b) {
 374       _misc_flags |= _misc_has_nonstatic_fields;
 375     } else {
 376       _misc_flags &= ~_misc_has_nonstatic_fields;
 377     }
 378   }
 379 
 380   // field sizes
 381   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 382   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 383 
 384   int static_field_size() const            { return _static_field_size; }
 385   void set_static_field_size(int size)     { _static_field_size = size; }
 386 
 387   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 388   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 389 
 390   // Java itable
 391   int  itable_length() const               { return _itable_len; }
 392   void set_itable_length(int len)          { _itable_len = len; }




 393 
 394   // array klasses
 395   Klass* array_klasses() const             { return _array_klasses; }
 396   inline Klass* array_klasses_acquire() const; // load with acquire semantics
 397   void set_array_klasses(Klass* k)         { _array_klasses = k; }
 398   inline void release_set_array_klasses(Klass* k); // store with release semantics
 399 
 400   // methods
 401   Array<Method*>* methods() const          { return _methods; }
 402   void set_methods(Array<Method*>* a)      { _methods = a; }
 403   Method* method_with_idnum(int idnum);
 404   Method* method_with_orig_idnum(int idnum);
 405   Method* method_with_orig_idnum(int idnum, int version);
 406 
 407   // method ordering
 408   Array<int>* method_ordering() const     { return _method_ordering; }
 409   void set_method_ordering(Array<int>* m) { _method_ordering = m; }
 410   void copy_method_ordering(const intArray* m, TRAPS);
 411 
 412   // default_methods




 189   const char*     _source_debug_extension;
 190   // Array name derived from this class which needs unreferencing
 191   // if this class is unloaded.
 192   Symbol*         _array_name;
 193 
 194   // Number of heapOopSize words used by non-static fields in this klass
 195   // (including inherited fields but after header_size()).
 196   int             _nonstatic_field_size;
 197   int             _static_field_size;    // number words used by static fields (oop and non-oop) in this klass
 198   // Constant pool index to the utf8 entry of the Generic signature,
 199   // or 0 if none.
 200   u2              _generic_signature_index;
 201   // Constant pool index to the utf8 entry for the name of source file
 202   // containing this klass, 0 if not specified.
 203   u2              _source_file_name_index;
 204   u2              _static_oop_field_count;// number of static oop fields in this klass
 205   u2              _java_fields_count;    // The number of declared Java fields
 206   int             _nonstatic_oop_map_size;// size in words of nonstatic oop map blocks
 207 
 208   int             _itable_len;           // length of Java itable (in words)
 209 
 210   int             _method_sig_count;     // number of method signatures in constant pool
 211 
 212   // _is_marked_dependent can be set concurrently, thus cannot be part of the
 213   // _misc_flags.
 214   bool            _is_marked_dependent;  // used for marking during flushing and deoptimization
 215   bool            _is_being_redefined;   // used for locking redefinition
 216 
 217   // The low two bits of _misc_flags contains the kind field.
 218   // This can be used to quickly discriminate among the four kinds of
 219   // InstanceKlass.
 220 
 221   static const unsigned _misc_kind_field_size = 2;
 222   static const unsigned _misc_kind_field_pos  = 0;
 223   static const unsigned _misc_kind_field_mask = (1u << _misc_kind_field_size) - 1u;
 224 
 225   static const unsigned _misc_kind_other        = 0; // concrete InstanceKlass
 226   static const unsigned _misc_kind_reference    = 1; // InstanceRefKlass
 227   static const unsigned _misc_kind_class_loader = 2; // InstanceClassLoaderKlass
 228   static const unsigned _misc_kind_mirror       = 3; // InstanceMirrorKlass
 229 
 230   // Start after _misc_kind field.
 231   enum {


 376     if (b) {
 377       _misc_flags |= _misc_has_nonstatic_fields;
 378     } else {
 379       _misc_flags &= ~_misc_has_nonstatic_fields;
 380     }
 381   }
 382 
 383   // field sizes
 384   int nonstatic_field_size() const         { return _nonstatic_field_size; }
 385   void set_nonstatic_field_size(int size)  { _nonstatic_field_size = size; }
 386 
 387   int static_field_size() const            { return _static_field_size; }
 388   void set_static_field_size(int size)     { _static_field_size = size; }
 389 
 390   int static_oop_field_count() const       { return (int)_static_oop_field_count; }
 391   void set_static_oop_field_count(u2 size) { _static_oop_field_count = size; }
 392 
 393   // Java itable
 394   int  itable_length() const               { return _itable_len; }
 395   void set_itable_length(int len)          { _itable_len = len; }
 396 
 397   // Number of constant pool method signatures
 398   int method_sig_count() const             { return _method_sig_count; }
 399   void set_method_sig_count(int count)     { _method_sig_count = count; }
 400 
 401   // array klasses
 402   Klass* array_klasses() const             { return _array_klasses; }
 403   inline Klass* array_klasses_acquire() const; // load with acquire semantics
 404   void set_array_klasses(Klass* k)         { _array_klasses = k; }
 405   inline void release_set_array_klasses(Klass* k); // store with release semantics
 406 
 407   // methods
 408   Array<Method*>* methods() const          { return _methods; }
 409   void set_methods(Array<Method*>* a)      { _methods = a; }
 410   Method* method_with_idnum(int idnum);
 411   Method* method_with_orig_idnum(int idnum);
 412   Method* method_with_orig_idnum(int idnum, int version);
 413 
 414   // method ordering
 415   Array<int>* method_ordering() const     { return _method_ordering; }
 416   void set_method_ordering(Array<int>* m) { _method_ordering = m; }
 417   void copy_method_ordering(const intArray* m, TRAPS);
 418 
 419   // default_methods


< prev index next >