equal
deleted
inserted
replaced
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: |