1.1 --- a/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Aug 19 12:39:06 2014 +0200 1.2 +++ b/src/share/vm/gc_implementation/g1/concurrentMark.cpp Tue Aug 19 10:50:27 2014 +0200 1.3 @@ -728,14 +728,13 @@ 1.4 _completed_initialization = true; 1.5 } 1.6 1.7 -void ConcurrentMark::update_g1_committed(bool force) { 1.8 +void ConcurrentMark::update_heap_boundaries(MemRegion bounds, bool force) { 1.9 // If concurrent marking is not in progress, then we do not need to 1.10 // update _heap_end. 1.11 if (!concurrent_marking_in_progress() && !force) return; 1.12 1.13 - MemRegion committed = _g1h->g1_committed(); 1.14 - assert(committed.start() == _heap_start, "start shouldn't change"); 1.15 - HeapWord* new_end = committed.end(); 1.16 + assert(bounds.start() == _heap_start, "start shouldn't change"); 1.17 + HeapWord* new_end = bounds.end(); 1.18 if (new_end > _heap_end) { 1.19 // The heap has been expanded. 1.20 1.21 @@ -826,7 +825,7 @@ 1.22 assert(out_of_regions(), 1.23 err_msg("only way to get here: _finger: "PTR_FORMAT", _heap_end: "PTR_FORMAT, 1.24 p2i(_finger), p2i(_heap_end))); 1.25 - update_g1_committed(true); 1.26 + update_heap_boundaries(_g1h->g1_committed(), true); 1.27 } 1.28 } 1.29 1.30 @@ -2194,7 +2193,7 @@ 1.31 // Noone else should be accessing the _cleanup_list at this point, 1.32 // so it's not necessary to take any locks 1.33 while (!_cleanup_list.is_empty()) { 1.34 - HeapRegion* hr = _cleanup_list.remove_head(); 1.35 + HeapRegion* hr = _cleanup_list.remove_region(true /* from_head */); 1.36 assert(hr != NULL, "Got NULL from a non-empty list"); 1.37 hr->par_clear(); 1.38 tmp_free_list.add_ordered(hr);