Mercurial > hg > truffle
comparison src/share/vm/oops/oop.hpp @ 2226:c5a923563727
6912621: iCMS: Error: assert(_markBitMap.isMarked(addr + 1),"Missing Printezis bit?")
Summary: Fix block_size_if_printezis_bits() so it does not expect the bits, only uses them when available. Fix block_size_no_stall() so it does not stall when the bits are missing such cases, letting the caller deal with zero size returns. Constant pool cache oops do not need to be unparsable or conc_unsafe after their klass pointer is installed. Some cosmetic clean-ups and some assertion checking for conc-usafety which, in the presence of class file redefinition, has no a-priori time boundedness, so all GCs must be able to safely deal with putatively conc-unsafe objects in a stop-world pause.
Reviewed-by: jmasa, johnc
author | ysr |
---|---|
date | Mon, 07 Feb 2011 22:19:57 -0800 |
parents | 3582bf76420e |
children | e5383553fd4e |
comparison
equal
deleted
inserted
replaced
2225:c798c277ddd1 | 2226:c5a923563727 |
---|---|
69 | 69 |
70 // Fast access to barrier set. Must be initialized. | 70 // Fast access to barrier set. Must be initialized. |
71 static BarrierSet* _bs; | 71 static BarrierSet* _bs; |
72 | 72 |
73 public: | 73 public: |
74 enum ConcSafeType { | |
75 IsUnsafeConc = false, | |
76 IsSafeConc = true | |
77 }; | |
78 | |
74 markOop mark() const { return _mark; } | 79 markOop mark() const { return _mark; } |
75 markOop* mark_addr() const { return (markOop*) &_mark; } | 80 markOop* mark_addr() const { return (markOop*) &_mark; } |
76 | 81 |
77 void set_mark(volatile markOop m) { _mark = m; } | 82 void set_mark(volatile markOop m) { _mark = m; } |
78 | 83 |