< prev index next >
src/share/vm/gc/g1/heapRegion.cpp
Print this page
*** 165,175 ****
// treat all objects as being inside the unmarked area.
zero_marked_bytes();
init_top_at_mark_start();
}
! void HeapRegion::hr_clear(bool par, bool clear_space, bool locked) {
assert(_humongous_start_region == NULL,
"we should have already filtered out humongous regions");
assert(!in_collection_set(),
"Should not clear heap region %u in the collection set", hrm_index());
--- 165,175 ----
// treat all objects as being inside the unmarked area.
zero_marked_bytes();
init_top_at_mark_start();
}
! void HeapRegion::hr_clear(bool keep_remset, bool clear_space, bool locked) {
assert(_humongous_start_region == NULL,
"we should have already filtered out humongous regions");
assert(!in_collection_set(),
"Should not clear heap region %u in the collection set", hrm_index());
*** 177,195 ****
set_young_index_in_cset(-1);
uninstall_surv_rate_group();
set_free();
reset_pre_dummy_top();
! if (!par) {
! // If this is parallel, this will be done later.
! HeapRegionRemSet* hrrs = rem_set();
if (locked) {
! hrrs->clear_locked();
} else {
! hrrs->clear();
}
}
zero_marked_bytes();
init_top_at_mark_start();
_gc_time_stamp = G1CollectedHeap::heap()->get_gc_time_stamp();
if (clear_space) clear(SpaceDecorator::Mangle);
--- 177,194 ----
set_young_index_in_cset(-1);
uninstall_surv_rate_group();
set_free();
reset_pre_dummy_top();
! if (!keep_remset) {
if (locked) {
! rem_set()->clear_locked();
} else {
! rem_set()->clear();
}
}
+
zero_marked_bytes();
init_top_at_mark_start();
_gc_time_stamp = G1CollectedHeap::heap()->get_gc_time_stamp();
if (clear_space) clear(SpaceDecorator::Mangle);
< prev index next >