< prev index next >
src/share/vm/gc/g1/g1CardLiveData.cpp
Print this page
rev 10807 : 8153843: G1CardLiveDataHelper incorrectly sets next_live_bytes on dead humongous regions
Reviewed-by:
*** 204,215 ****
--- 204,221 ----
if (ntams <= start) {
// Skip empty regions.
return 0;
}
if (hr->is_humongous()) {
+ HeapRegion* start_region = hr->humongous_start_region();
+ if (mark_bitmap->isMarked(start_region->bottom())) {
mark_card_bitmap_range(start, hr->top());
return pointer_delta(hr->top(), start, 1);
+ } else {
+ // Humongous start object was actually dead.
+ return 0;
+ }
}
assert(start <= hr->end() && start <= ntams && ntams <= hr->end(),
"Preconditions not met - "
"start: " PTR_FORMAT ", ntams: " PTR_FORMAT ", end: " PTR_FORMAT,
< prev index next >