< prev index next >

src/hotspot/share/gc/g1/g1HeapVerifier.cpp

Print this page
rev 49484 : imported patch 8197573-remove-secondary-free-list
rev 49494 : imported patch 8199742-collectorstate-fixes
rev 49495 : [mq]: 8199742-stefanj-review
rev 49497 : [mq]: 8200234-g1concurrentmark-refactorings

@@ -649,14 +649,12 @@
   HeapWord* end    = hr->end();
 
   bool res_p = verify_no_bits_over_tams("prev", prev_bitmap, ptams, end);
 
   bool res_n = true;
-  // We reset mark_or_rebuild_in_progress() before we reset _cmThread->in_progress() and in this window
-  // we do the clearing of the next bitmap concurrently. Thus, we can not verify the bitmap
-  // if we happen to be in that state.
-  if (_g1h->collector_state()->mark_or_rebuild_in_progress() || !_g1h->_cmThread->in_progress()) {
+  // We cannot verify the next bitmap while we are about to clear it.
+  if (!_g1h->collector_state()->clearing_next_bitmap()) {
     res_n = verify_no_bits_over_tams("next", next_bitmap, ntams, end);
   }
   if (!res_p || !res_n) {
     log_error(gc, verify)("#### Bitmap verification failed for " HR_FORMAT, HR_FORMAT_PARAMS(hr));
     log_error(gc, verify)("#### Caller: %s", caller);

@@ -664,11 +662,13 @@
   }
   return true;
 }
 
 void G1HeapVerifier::check_bitmaps(const char* caller, HeapRegion* hr) {
-  if (!G1VerifyBitmaps) return;
+  if (!G1VerifyBitmaps) {
+    return;
+  }
 
   guarantee(verify_bitmaps(caller, hr), "bitmap verification");
 }
 
 class G1VerifyBitmapClosure : public HeapRegionClosure {

@@ -691,11 +691,13 @@
     return false;
   }
 };
 
 void G1HeapVerifier::check_bitmaps(const char* caller) {
-  if (!G1VerifyBitmaps) return;
+  if (!G1VerifyBitmaps) {
+    return;
+  }
 
   G1VerifyBitmapClosure cl(caller, this);
   _g1h->heap_region_iterate(&cl);
   guarantee(!cl.failures(), "bitmap verification");
 }
< prev index next >