equal
deleted
inserted
replaced
327 void G1PrepareCompactClosure::free_humongous_region(HeapRegion* hr) { |
327 void G1PrepareCompactClosure::free_humongous_region(HeapRegion* hr) { |
328 HeapWord* end = hr->end(); |
328 HeapWord* end = hr->end(); |
329 FreeRegionList dummy_free_list("Dummy Free List for G1MarkSweep"); |
329 FreeRegionList dummy_free_list("Dummy Free List for G1MarkSweep"); |
330 |
330 |
331 hr->set_containing_set(NULL); |
331 hr->set_containing_set(NULL); |
332 _humongous_regions_removed.increment(1u, hr->capacity()); |
332 _humongous_regions_removed++; |
333 |
333 |
334 _g1h->free_humongous_region(hr, &dummy_free_list, false /* par */); |
334 _g1h->free_humongous_region(hr, &dummy_free_list, false /* par */); |
335 prepare_for_compaction(hr, end); |
335 prepare_for_compaction(hr, end); |
336 dummy_free_list.remove_all(); |
336 dummy_free_list.remove_all(); |
337 } |
337 } |
356 } |
356 } |
357 |
357 |
358 void G1PrepareCompactClosure::update_sets() { |
358 void G1PrepareCompactClosure::update_sets() { |
359 // We'll recalculate total used bytes and recreate the free list |
359 // We'll recalculate total used bytes and recreate the free list |
360 // at the end of the GC, so no point in updating those values here. |
360 // at the end of the GC, so no point in updating those values here. |
361 HeapRegionSetCount empty_set; |
361 _g1h->remove_from_old_sets(0, _humongous_regions_removed); |
362 _g1h->remove_from_old_sets(empty_set, _humongous_regions_removed); |
|
363 } |
362 } |
364 |
363 |
365 bool G1PrepareCompactClosure::doHeapRegion(HeapRegion* hr) { |
364 bool G1PrepareCompactClosure::doHeapRegion(HeapRegion* hr) { |
366 if (hr->is_humongous()) { |
365 if (hr->is_humongous()) { |
367 oop obj = oop(hr->humongous_start_region()->bottom()); |
366 oop obj = oop(hr->humongous_start_region()->bottom()); |