diff src/share/vm/gc_implementation/g1/heapRegion.hpp @ 20386:edb5f3b38aab

8054808: Bitmap verification sometimes fails after Full GC aborts concurrent mark. Summary: The verification code that checked whether no bitmap mark had been found re-read HeapRegion::end() after the check on the bitmap. Concurrent humongous object allocation could have changed HeapRegion::end() in the meantime. Fix this by using the actual end of the region instead of HeapRegion::end() for comparison. Reviewed-by: brutisso, jmasa
author tschatzl
date Thu, 28 Aug 2014 17:05:41 +0200
parents a8ea2f110d87
children 227a9e5e4b4a
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/heapRegion.hpp	Wed Sep 03 08:44:47 2014 +0000
+++ b/src/share/vm/gc_implementation/g1/heapRegion.hpp	Thu Aug 28 17:05:41 2014 +0200
@@ -570,7 +570,7 @@
   void set_next_dirty_cards_region(HeapRegion* hr) { _next_dirty_cards_region = hr; }
   bool is_on_dirty_cards_region_list() const { return get_next_dirty_cards_region() != NULL; }
 
-  HeapWord* orig_end() { return _orig_end; }
+  HeapWord* orig_end() const { return _orig_end; }
 
   // Reset HR stuff to default values.
   void hr_clear(bool par, bool clear_space, bool locked = false);