< prev index next >

src/hotspot/share/gc/g1/heapRegion.hpp

Print this page
rev 57223 : imported patch 8225484-changes-to-survivor-calculation

@@ -242,10 +242,12 @@
            _next_marked_bytes == 0,
            "Must be called after zero_marked_bytes.");
     _prev_top_at_mark_start = _next_top_at_mark_start = bottom();
   }
 
+  size_t _survivor_bytes;       // Bytes in this region survived from previous GC.
+
   // Data for young region survivor prediction.
   uint  _young_index_in_cset;
   G1SurvRateGroup* _surv_rate_group;
   int  _age_index;
 

@@ -412,10 +414,18 @@
   // space to be shared by JVM instances.
   bool is_archive()        const { return _type.is_archive(); }
   bool is_open_archive()   const { return _type.is_open_archive(); }
   bool is_closed_archive() const { return _type.is_closed_archive(); }
 
+  void set_survivor_bytes(size_t bytes) {
+    assert(is_survivor(), "pre-condition");
+    assert(bytes <= used(), "Survivor bytes " SIZE_FORMAT " larger than used() " SIZE_FORMAT, bytes, used());
+    _survivor_bytes = bytes;
+  }
+
+  size_t survivor_bytes() const { return _survivor_bytes; }
+
   void set_free();
 
   void set_eden();
   void set_eden_pre_gc();
   void set_survivor();

@@ -531,11 +541,11 @@
   uint  young_index_in_cset() const { return _young_index_in_cset; }
   void clear_young_index_in_cset() { _young_index_in_cset = 0; }
   void set_young_index_in_cset(uint index) {
     assert(index != UINT_MAX, "just checking");
     assert(index != 0, "just checking");
-    assert(is_young(), "pre-condition");
+    assert(is_eden(), "pre-condition" );
     _young_index_in_cset = index;
   }
 
   int age_in_surv_rate_group() const;
   bool has_valid_age_in_surv_rate() const;
< prev index next >