< prev index next >

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

Print this page

        

@@ -469,18 +469,20 @@
   HeapRegion* next()              { return _next; }
 
   void set_prev(HeapRegion* prev) { _prev = prev; }
   HeapRegion* prev()              { return _prev; }
 
+  void unlink_from_list();
+
   // Every region added to a set is tagged with a reference to that
   // set. This is used for doing consistency checking to make sure that
   // the contents of a set are as they should be and it's only
   // available in non-product builds.
 #ifdef ASSERT
   void set_containing_set(HeapRegionSetBase* containing_set) {
-    assert((containing_set == NULL && _containing_set != NULL) ||
-           (containing_set != NULL && _containing_set == NULL),
+    assert((containing_set != NULL && _containing_set == NULL) ||
+            containing_set == NULL,
            "containing_set: " PTR_FORMAT " "
            "_containing_set: " PTR_FORMAT,
            p2i(containing_set), p2i(_containing_set));
 
     _containing_set = containing_set;

@@ -597,10 +599,13 @@
   }
   bool obj_allocated_since_next_marking(oop obj) const {
     return (HeapWord *) obj >= next_top_at_mark_start();
   }
 
+  // Update the region state after a failed evacuation.
+  void handle_evacuation_failed();
+
   // Iterate over the objects overlapping the given memory region, applying cl
   // to all references in the region.  This is a helper for
   // G1RemSet::refine_card*, and is tightly coupled with them.
   // mr must not be empty. Must be trimmed to the allocated/parseable space in this region.
   // This region must be old or humongous.
< prev index next >