< 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 >