src/share/vm/oops/instanceKlass.hpp

Print this page




 209   objArrayOop     _fields_annotations;
 210   // Annotation objects (byte arrays) for methods, or null if no annotations.
 211   // Index is the idnum, which is initially the same as the methods array index.
 212   objArrayOop     _methods_annotations;
 213   // Annotation objects (byte arrays) for methods' parameters, or null if no
 214   // such annotations.
 215   // Index is the idnum, which is initially the same as the methods array index.
 216   objArrayOop     _methods_parameter_annotations;
 217   // Annotation objects (byte arrays) for methods' default values, or null if no
 218   // such annotations.
 219   // Index is the idnum, which is initially the same as the methods array index.
 220   objArrayOop     _methods_default_annotations;
 221 
 222   //
 223   // End of the oop block.
 224   //
 225 
 226   // Name of source file containing this klass, NULL if not specified.
 227   Symbol*         _source_file_name;
 228   // the source debug extension for this klass, NULL if not specified.
 229   Symbol*         _source_debug_extension;


 230   // Generic signature, or null if none.
 231   Symbol*         _generic_signature;
 232   // Array name derived from this class which needs unreferencing
 233   // if this class is unloaded.
 234   Symbol*         _array_name;
 235 
 236   // Number of heapOopSize words used by non-static fields in this klass
 237   // (including inherited fields but after header_size()).
 238   int             _nonstatic_field_size;
 239   int             _static_field_size;    // number words used by static fields (oop and non-oop) in this klass
 240   u2              _static_oop_field_count;// number of static oop fields in this klass
 241   u2              _java_fields_count;    // The number of declared Java fields
 242   int             _nonstatic_oop_map_size;// size in words of nonstatic oop map blocks
 243 
 244   bool            _is_marked_dependent;  // used for marking during flushing and deoptimization
 245   enum {
 246     _misc_rewritten            = 1 << 0, // methods rewritten.
 247     _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops
 248     _misc_should_verify_class  = 1 << 2, // allow caching of preverification
 249     _misc_is_anonymous         = 1 << 3  // has embedded _inner_classes field


 525     } else {
 526       _misc_flags &= ~_misc_is_anonymous;
 527     }
 528   }
 529 
 530   // signers
 531   objArrayOop signers() const              { return _signers; }
 532   void set_signers(objArrayOop s)          { oop_store((oop*) &_signers, oop(s)); }
 533 
 534   // source file name
 535   Symbol* source_file_name() const         { return _source_file_name; }
 536   void set_source_file_name(Symbol* n);
 537 
 538   // minor and major version numbers of class file
 539   u2 minor_version() const                 { return _minor_version; }
 540   void set_minor_version(u2 minor_version) { _minor_version = minor_version; }
 541   u2 major_version() const                 { return _major_version; }
 542   void set_major_version(u2 major_version) { _major_version = major_version; }
 543 
 544   // source debug extension
 545   Symbol* source_debug_extension() const   { return _source_debug_extension; }
 546   void set_source_debug_extension(Symbol* n);
 547 
 548   // symbol unloading support (refcount already added)
 549   Symbol* array_name()                     { return _array_name; }
 550   void set_array_name(Symbol* name)        { assert(_array_name == NULL, "name already created"); _array_name = name; }
 551 
 552   // nonstatic oop-map blocks
 553   static int nonstatic_oop_map_size(unsigned int oop_map_count) {
 554     return oop_map_count * OopMapBlock::size_in_words();
 555   }
 556   unsigned int nonstatic_oop_map_count() const {
 557     return _nonstatic_oop_map_size / OopMapBlock::size_in_words();
 558   }
 559   int nonstatic_oop_map_size() const { return _nonstatic_oop_map_size; }
 560   void set_nonstatic_oop_map_size(int words) {
 561     _nonstatic_oop_map_size = words;
 562   }
 563 
 564   // RedefineClasses() support for previous versions:
 565   void add_previous_version(instanceKlassHandle ikh, BitMap *emcp_methods,
 566          int emcp_method_count);




 209   objArrayOop     _fields_annotations;
 210   // Annotation objects (byte arrays) for methods, or null if no annotations.
 211   // Index is the idnum, which is initially the same as the methods array index.
 212   objArrayOop     _methods_annotations;
 213   // Annotation objects (byte arrays) for methods' parameters, or null if no
 214   // such annotations.
 215   // Index is the idnum, which is initially the same as the methods array index.
 216   objArrayOop     _methods_parameter_annotations;
 217   // Annotation objects (byte arrays) for methods' default values, or null if no
 218   // such annotations.
 219   // Index is the idnum, which is initially the same as the methods array index.
 220   objArrayOop     _methods_default_annotations;
 221 
 222   //
 223   // End of the oop block.
 224   //
 225 
 226   // Name of source file containing this klass, NULL if not specified.
 227   Symbol*         _source_file_name;
 228   // the source debug extension for this klass, NULL if not specified.
 229   // Specified as UTF-8 string without terminating zero byte in the classfile,
 230   // it is stored in the instanceklass as a NULL-terminated UTF-8 string
 231   char*           _source_debug_extension;
 232   // Generic signature, or null if none.
 233   Symbol*         _generic_signature;
 234   // Array name derived from this class which needs unreferencing
 235   // if this class is unloaded.
 236   Symbol*         _array_name;
 237 
 238   // Number of heapOopSize words used by non-static fields in this klass
 239   // (including inherited fields but after header_size()).
 240   int             _nonstatic_field_size;
 241   int             _static_field_size;    // number words used by static fields (oop and non-oop) in this klass
 242   u2              _static_oop_field_count;// number of static oop fields in this klass
 243   u2              _java_fields_count;    // The number of declared Java fields
 244   int             _nonstatic_oop_map_size;// size in words of nonstatic oop map blocks
 245 
 246   bool            _is_marked_dependent;  // used for marking during flushing and deoptimization
 247   enum {
 248     _misc_rewritten            = 1 << 0, // methods rewritten.
 249     _misc_has_nonstatic_fields = 1 << 1, // for sizing with UseCompressedOops
 250     _misc_should_verify_class  = 1 << 2, // allow caching of preverification
 251     _misc_is_anonymous         = 1 << 3  // has embedded _inner_classes field


 527     } else {
 528       _misc_flags &= ~_misc_is_anonymous;
 529     }
 530   }
 531 
 532   // signers
 533   objArrayOop signers() const              { return _signers; }
 534   void set_signers(objArrayOop s)          { oop_store((oop*) &_signers, oop(s)); }
 535 
 536   // source file name
 537   Symbol* source_file_name() const         { return _source_file_name; }
 538   void set_source_file_name(Symbol* n);
 539 
 540   // minor and major version numbers of class file
 541   u2 minor_version() const                 { return _minor_version; }
 542   void set_minor_version(u2 minor_version) { _minor_version = minor_version; }
 543   u2 major_version() const                 { return _major_version; }
 544   void set_major_version(u2 major_version) { _major_version = major_version; }
 545 
 546   // source debug extension
 547   char* source_debug_extension() const     { return _source_debug_extension; }
 548   void set_source_debug_extension(char* array, int length);
 549 
 550   // symbol unloading support (refcount already added)
 551   Symbol* array_name()                     { return _array_name; }
 552   void set_array_name(Symbol* name)        { assert(_array_name == NULL, "name already created"); _array_name = name; }
 553 
 554   // nonstatic oop-map blocks
 555   static int nonstatic_oop_map_size(unsigned int oop_map_count) {
 556     return oop_map_count * OopMapBlock::size_in_words();
 557   }
 558   unsigned int nonstatic_oop_map_count() const {
 559     return _nonstatic_oop_map_size / OopMapBlock::size_in_words();
 560   }
 561   int nonstatic_oop_map_size() const { return _nonstatic_oop_map_size; }
 562   void set_nonstatic_oop_map_size(int words) {
 563     _nonstatic_oop_map_size = words;
 564   }
 565 
 566   // RedefineClasses() support for previous versions:
 567   void add_previous_version(instanceKlassHandle ikh, BitMap *emcp_methods,
 568          int emcp_method_count);