src/hotspot/share/gc/g1/g1ConcurrentMark.cpp
changeset 49604 ca5978b8378b
parent 49592 77fb0be7d19f
child 49606 9ae8719efcae
--- a/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Mon Mar 26 10:19:31 2018 -0400
+++ b/src/hotspot/share/gc/g1/g1ConcurrentMark.cpp	Mon Mar 26 16:51:41 2018 +0200
@@ -515,6 +515,14 @@
   set_concurrent_marking_in_progress();
 }
 
+void G1ConcurrentMark::humongous_object_eagerly_reclaimed(HeapRegion* r) {
+  assert(SafepointSynchronize::is_at_safepoint(), "May only be called at a safepoint.");
+
+  // Need to clear mark bit of the humongous object if already set and during a marking cycle.
+  if (_next_mark_bitmap->is_marked(r->bottom())) {
+    _next_mark_bitmap->clear(r->bottom());
+  }
+}
 
 void G1ConcurrentMark::reset_marking_state() {
   _global_mark_stack.set_empty();