src/share/vm/gc_implementation/g1/heapRegion.hpp

Print this page
rev 2755 : 7097516: G1: assert(0<= from_card && from_card<HeapRegion::CardsPerRegion) failed: Must be in range.
Summary: Introduced a version of is_in_reserved() that looks at _orig_end as opposed to _end.
Reviewed-by: duke

@@ -429,10 +429,20 @@
   // For a humongous region, region in which it starts.
   HeapRegion* humongous_start_region() const {
     return _humongous_start_region;
   }
 
+  // Same as Space::is_in_reserved, but will use the actual size of a humongous start
+  // region rather than the end of the humongous object.
+  bool is_in_reserved_raw(const void* p) const {
+    if (startsHumongous()) {
+      return _bottom <= p && p < _orig_end;
+    } else {
+      return Space::is_in_reserved(p);
+    }
+  }
+
   // Makes the current region be a "starts humongous" region, i.e.,
   // the first region in a series of one or more contiguous regions
   // that will contain a single "humongous" object. The two parameters
   // are as follows:
   //