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;