Mercurial > hg > graal-compiler
diff src/share/vm/gc_implementation/g1/concurrentMark.cpp @ 20336:6701abbc4441
8054818: Refactor HeapRegionSeq to manage heap region and auxiliary data
Summary: Let HeapRegionSeq manage the heap region and auxiliary data to decrease the amount of responsibilities of G1CollectedHeap, and encapsulate this work from other code.
Reviewed-by: jwilhelm, jmasa, mgerdin, brutisso
author | tschatzl |
---|---|
date | Tue, 19 Aug 2014 10:50:27 +0200 |
parents | eec72fa4b108 |
children | 1f1d373cd044 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Aug 19 12:39:06 2014 +0200 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Aug 19 10:50:27 2014 +0200 @@ -728,14 +728,13 @@ _completed_initialization = true; } -void ConcurrentMark::update_g1_committed(bool force) { +void ConcurrentMark::update_heap_boundaries(MemRegion bounds, bool force) { // If concurrent marking is not in progress, then we do not need to // update _heap_end. if (!concurrent_marking_in_progress() && !force) return; - MemRegion committed = _g1h->g1_committed(); - assert(committed.start() == _heap_start, "start shouldn't change"); - HeapWord* new_end = committed.end(); + assert(bounds.start() == _heap_start, "start shouldn't change"); + HeapWord* new_end = bounds.end(); if (new_end > _heap_end) { // The heap has been expanded. @@ -826,7 +825,7 @@ assert(out_of_regions(), err_msg("only way to get here: _finger: "PTR_FORMAT", _heap_end: "PTR_FORMAT, p2i(_finger), p2i(_heap_end))); - update_g1_committed(true); + update_heap_boundaries(_g1h->g1_committed(), true); } } @@ -2194,7 +2193,7 @@ // Noone else should be accessing the _cleanup_list at this point, // so it's not necessary to take any locks while (!_cleanup_list.is_empty()) { - HeapRegion* hr = _cleanup_list.remove_head(); + HeapRegion* hr = _cleanup_list.remove_region(true /* from_head */); assert(hr != NULL, "Got NULL from a non-empty list"); hr->par_clear(); tmp_free_list.add_ordered(hr);