--- a/hotspot/src/share/vm/gc/g1/heapRegion.cpp Mon Jul 18 14:20:30 2016 -0700
+++ b/hotspot/src/share/vm/gc/g1/heapRegion.cpp Tue Jul 19 10:31:41 2016 +0200
@@ -167,7 +167,7 @@
init_top_at_mark_start();
}
-void HeapRegion::hr_clear(bool par, bool clear_space, bool locked) {
+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(),
@@ -179,15 +179,14 @@
set_free();
reset_pre_dummy_top();
- if (!par) {
- // If this is parallel, this will be done later.
- HeapRegionRemSet* hrrs = rem_set();
+ if (!keep_remset) {
if (locked) {
- hrrs->clear_locked();
+ rem_set()->clear_locked();
} else {
- hrrs->clear();
+ rem_set()->clear();
}
}
+
zero_marked_bytes();
init_top_at_mark_start();