hotspot/src/share/vm/oops/instanceKlass.hpp
changeset 3694 942b7bc7f28c
parent 3693 af387bf37e8d
child 3821 847fddcb639b
equal deleted inserted replaced
3693:af387bf37e8d 3694:942b7bc7f28c
   101 // ValueObjs embedded in klass. Describes where oops are located in instances of
   101 // ValueObjs embedded in klass. Describes where oops are located in instances of
   102 // this klass.
   102 // this klass.
   103 class OopMapBlock VALUE_OBJ_CLASS_SPEC {
   103 class OopMapBlock VALUE_OBJ_CLASS_SPEC {
   104  public:
   104  public:
   105   // Byte offset of the first oop mapped by this block.
   105   // Byte offset of the first oop mapped by this block.
   106   jushort offset() const          { return _offset; }
   106   int offset() const          { return _offset; }
   107   void set_offset(jushort offset) { _offset = offset; }
   107   void set_offset(int offset) { _offset = offset; }
   108 
   108 
   109   // Number of oops in this block.
   109   // Number of oops in this block.
   110   jushort count() const         { return _count; }
   110   uint count() const         { return _count; }
   111   void set_count(jushort count) { _count = count; }
   111   void set_count(uint count) { _count = count; }
   112 
   112 
   113   // sizeof(OopMapBlock) in HeapWords.
   113   // sizeof(OopMapBlock) in HeapWords.
   114   static const int size_in_words() {
   114   static const int size_in_words() {
   115     return align_size_up(int(sizeof(OopMapBlock)), HeapWordSize) >>
   115     return align_size_up(int(sizeof(OopMapBlock)), HeapWordSize) >>
   116       LogHeapWordSize;
   116       LogHeapWordSize;
   117   }
   117   }
   118 
   118 
   119  private:
   119  private:
   120   jushort _offset;
   120   int  _offset;
   121   jushort _count;
   121   uint _count;
   122 };
   122 };
   123 
   123 
   124 class instanceKlass: public Klass {
   124 class instanceKlass: public Klass {
   125   friend class VMStructs;
   125   friend class VMStructs;
   126  public:
   126  public:
   444   // source debug extension
   444   // source debug extension
   445   symbolOop source_debug_extension() const    { return _source_debug_extension; }
   445   symbolOop source_debug_extension() const    { return _source_debug_extension; }
   446   void set_source_debug_extension(symbolOop n){ oop_store_without_check((oop*) &_source_debug_extension, (oop) n); }
   446   void set_source_debug_extension(symbolOop n){ oop_store_without_check((oop*) &_source_debug_extension, (oop) n); }
   447 
   447 
   448   // nonstatic oop-map blocks
   448   // nonstatic oop-map blocks
   449   static int nonstatic_oop_map_size(int oop_map_count) {
   449   static int nonstatic_oop_map_size(unsigned int oop_map_count) {
   450     return oop_map_count * OopMapBlock::size_in_words();
   450     return oop_map_count * OopMapBlock::size_in_words();
   451   }
   451   }
   452   int nonstatic_oop_map_count() const {
   452   unsigned int nonstatic_oop_map_count() const {
   453     return _nonstatic_oop_map_size / OopMapBlock::size_in_words();
   453     return _nonstatic_oop_map_size / OopMapBlock::size_in_words();
   454   }
   454   }
   455   int nonstatic_oop_map_size() const { return _nonstatic_oop_map_size; }
   455   int nonstatic_oop_map_size() const { return _nonstatic_oop_map_size; }
   456   void set_nonstatic_oop_map_size(int words) {
   456   void set_nonstatic_oop_map_size(int words) {
   457     _nonstatic_oop_map_size = words;
   457     _nonstatic_oop_map_size = words;