comparison src/share/vm/gc_implementation/g1/heapRegionSeq.cpp @ 960:eb058abd0562

6861557: G1: assert(top() == bottom() || zfs == Allocated,"Region must be empty, or ...") Summary: Druing heap shrinking, check for emptiness of a region before modifying its ZF status. Reviewed-by: tonyp
author ysr
date Tue, 15 Sep 2009 16:50:50 -0700
parents 96b229c54d1e
children c18cbe5936b8
comparison
equal deleted inserted replaced
945:68ef3fdcdb76 960:eb058abd0562
300 // We have to leave humongous regions where they are, 300 // We have to leave humongous regions where they are,
301 // and work around them. 301 // and work around them.
302 if (cur->isHumongous()) { 302 if (cur->isHumongous()) {
303 return MemRegion(last_start, end); 303 return MemRegion(last_start, end);
304 } 304 }
305 cur->reset_zero_fill();
306 assert(cur == _regions.top(), "Should be top"); 305 assert(cur == _regions.top(), "Should be top");
307 if (!cur->is_empty()) break; 306 if (!cur->is_empty()) break;
307 cur->reset_zero_fill();
308 shrink_bytes -= cur->capacity(); 308 shrink_bytes -= cur->capacity();
309 num_regions_deleted++; 309 num_regions_deleted++;
310 _regions.pop(); 310 _regions.pop();
311 last_start = cur->bottom(); 311 last_start = cur->bottom();
312 // We need to delete these somehow, but can't currently do so here: if 312 // We need to delete these somehow, but can't currently do so here: if