src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp

Print this page

        

@@ -250,16 +250,14 @@
     BitMap::idx_t start_offset = heapWordToOffset(start_addr);
     BitMap::idx_t end_offset = heapWordToOffset(end_addr);
 
     start_offset = _bm.get_next_one_offset(start_offset, end_offset);
     while (start_offset < end_offset) {
-      HeapWord* obj_addr = offsetToHeapWord(start_offset);
-      oop obj = (oop) obj_addr;
       if (!cl->do_bit(start_offset)) {
         return false;
       }
-      HeapWord* next_addr = MIN2(obj_addr + obj->size(), end_addr);
+      HeapWord* next_addr = MIN2(nextObject(offsetToHeapWord(start_offset)), end_addr);
       BitMap::idx_t next_offset = heapWordToOffset(next_addr);
       start_offset = _bm.get_next_one_offset(next_offset, end_offset);
     }
   }
   return true;