--- old/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp 2014-08-28 09:58:55.450344577 +0200 +++ new/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp 2014-08-28 09:58:55.370347396 +0200 @@ -217,8 +217,12 @@ void HeapRegionSeq::iterate(HeapRegionClosure* blk) const { uint len = max_length(); + iterate_range(blk, 0, len); +} - for (uint i = 0; i < len; i++) { +void HeapRegionSeq::iterate_range(HeapRegionClosure* blk, uint start, uint end) const { + assert(start <= end && end <= max_length(), "Invalid range."); + for (uint i = start; i < end; i++) { if (!is_available(i)) { continue; }