< prev index next >

src/share/vm/gc/g1/g1BlockOffsetTable.inline.hpp

Print this page
rev 12235 : [mq]: block_start_acquire

*** 134,144 **** 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) { return q; } n += block_size(q); } assert(q <= n, "wrong order for q and addr"); --- 134,144 ---- 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_acquire() == NULL) { return q; } n += block_size(q); } assert(q <= n, "wrong order for q and addr");
*** 146,156 **** return q; } inline HeapWord* G1BlockOffsetTablePart::forward_to_block_containing_addr(HeapWord* q, const void* addr) { ! if (oop(q)->klass_or_null() == 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 --- 146,156 ---- return q; } inline HeapWord* G1BlockOffsetTablePart::forward_to_block_containing_addr(HeapWord* q, const void* addr) { ! 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 >