hotspot/src/share/vm/oops/cpCacheOop.hpp
changeset 2006 f2d2f0f20063
parent 670 ddf3e9583f2f
child 2105 347008ce7984
equal deleted inserted replaced
2005:42075507972b 2006:f2d2f0f20063
   289 class constantPoolCacheOopDesc: public oopDesc {
   289 class constantPoolCacheOopDesc: public oopDesc {
   290   friend class VMStructs;
   290   friend class VMStructs;
   291  private:
   291  private:
   292   int             _length;
   292   int             _length;
   293   constantPoolOop _constant_pool;                // the corresponding constant pool
   293   constantPoolOop _constant_pool;                // the corresponding constant pool
       
   294   // If true, safe for concurrent GC processing,
       
   295   // Set unconditionally in constantPoolCacheKlass::allocate()
       
   296   volatile bool        _is_conc_safe;
   294 
   297 
   295   // Sizing
   298   // Sizing
   296   debug_only(friend class ClassVerifier;)
   299   debug_only(friend class ClassVerifier;)
   297   int length() const                             { return _length; }
   300   int length() const                             { return _length; }
   298   void set_length(int length)                    { _length = length; }
   301   void set_length(int length)                    { _length = length; }
   313 
   316 
   314   // Accessors
   317   // Accessors
   315   void set_constant_pool(constantPoolOop pool)   { oop_store_without_check((oop*)&_constant_pool, (oop)pool); }
   318   void set_constant_pool(constantPoolOop pool)   { oop_store_without_check((oop*)&_constant_pool, (oop)pool); }
   316   constantPoolOop constant_pool() const          { return _constant_pool; }
   319   constantPoolOop constant_pool() const          { return _constant_pool; }
   317   ConstantPoolCacheEntry* entry_at(int i) const  { assert(0 <= i && i < length(), "index out of bounds"); return base() + i; }
   320   ConstantPoolCacheEntry* entry_at(int i) const  { assert(0 <= i && i < length(), "index out of bounds"); return base() + i; }
       
   321 
       
   322   // GC support
       
   323   // If the _length field has not been set, the size of the
       
   324   // constantPoolCache cannot be correctly calculated.
       
   325   bool is_conc_safe()                            { return _is_conc_safe; }
       
   326   void set_is_conc_safe(bool v)                  { _is_conc_safe = v; }
   318 
   327 
   319   // Code generation
   328   // Code generation
   320   static ByteSize base_offset()                  { return in_ByteSize(sizeof(constantPoolCacheOopDesc)); }
   329   static ByteSize base_offset()                  { return in_ByteSize(sizeof(constantPoolCacheOopDesc)); }
   321 
   330 
   322   // RedefineClasses() API support:
   331   // RedefineClasses() API support: