< prev index next >

src/share/vm/gc/g1/g1RemSet.cpp

Print this page
rev 13237 : imported patch 8183226-periodic-rem-set-summary-accesses-uninitialized-stuff

@@ -288,13 +288,10 @@
   _g1p(_g1->g1_policy()),
   _hot_card_cache(hot_card_cache),
   _prev_period_summary(),
   _into_cset_dirty_card_queue_set(false)
 {
-  if (log_is_enabled(Trace, gc, remset)) {
-    _prev_period_summary.initialize(this);
-  }
   // Initialize the card queue set used to hold cards containing
   // references into the collection set.
   _into_cset_dirty_card_queue_set.initialize(NULL, // Should never be called by the Java code
                                              DirtyCardQ_CBL_mon,
                                              DirtyCardQ_FL_lock,

@@ -784,17 +781,21 @@
   assert(card_processed, "must be");
 
   return update_rs_cl->has_refs_into_cset();
 }
 
+void G1RemSet::initialize_periodic_summary_info() {
+  if (log_is_enabled(Trace, gc, remset)) {
+    _prev_period_summary.initialize(this);
+  }
+}
+
 void G1RemSet::print_periodic_summary_info(const char* header, uint period_count) {
   if ((G1SummarizeRSetStatsPeriod > 0) && log_is_enabled(Trace, gc, remset) &&
       (period_count % G1SummarizeRSetStatsPeriod == 0)) {
 
-    if (!_prev_period_summary.initialized()) {
-      _prev_period_summary.initialize(this);
-    }
+    assert(_prev_period_summary.initialized(), "Periodic remembered set summary must be initialized.");
 
     G1RemSetSummary current;
     current.initialize(this);
     _prev_period_summary.subtract_from(&current);
 
< prev index next >