< prev index next >
src/share/vm/gc/g1/g1BlockOffsetTable.inline.hpp
Print this page
rev 12060 : imported patch block_start_acquire
@@ -134,11 +134,11 @@
const void* addr) const {
if (addr >= _space->top()) return _space->top();
while (n <= addr) {
q = n;
oop obj = oop(q);
- if (obj->klass_or_null() == NULL) {
+ if (obj->klass_or_null_acquire() == NULL) {
return q;
}
n += block_size(q);
}
assert(q <= n, "wrong order for q and addr");
@@ -146,11 +146,11 @@
return q;
}
inline HeapWord* G1BlockOffsetTablePart::forward_to_block_containing_addr(HeapWord* q,
const void* addr) {
- if (oop(q)->klass_or_null() == NULL) {
+ if (oop(q)->klass_or_null_acquire() == NULL) {
return q;
}
HeapWord* n = q + block_size(q);
// In the normal case, where the query "addr" is a card boundary, and the
// offset table chunks are the same size as cards, the block starting at
< prev index next >