4923 assert(dirty_card_queue_set().completed_buffers_num() == 0, "All should be consumed"); |
4923 assert(dirty_card_queue_set().completed_buffers_num() == 0, "All should be consumed"); |
4924 } |
4924 } |
4925 COMPILER2_PRESENT(DerivedPointerTable::update_pointers()); |
4925 COMPILER2_PRESENT(DerivedPointerTable::update_pointers()); |
4926 } |
4926 } |
4927 |
4927 |
4928 void G1CollectedHeap::free_region_if_totally_empty(HeapRegion* hr, |
4928 void G1CollectedHeap::free_region_if_empty(HeapRegion* hr, |
4929 size_t* pre_used, |
4929 size_t* pre_used, |
4930 FreeRegionList* free_list, |
4930 FreeRegionList* free_list, |
4931 HumongousRegionSet* humongous_proxy_set, |
4931 HumongousRegionSet* humongous_proxy_set, |
|
4932 HRRSCleanupTask* hrrs_cleanup_task, |
4932 bool par) { |
4933 bool par) { |
4933 if (hr->used() > 0 && hr->max_live_bytes() == 0 && !hr->is_young()) { |
4934 if (hr->used() > 0 && hr->max_live_bytes() == 0 && !hr->is_young()) { |
4934 if (hr->isHumongous()) { |
4935 if (hr->isHumongous()) { |
4935 assert(hr->startsHumongous(), "we should only see starts humongous"); |
4936 assert(hr->startsHumongous(), "we should only see starts humongous"); |
4936 free_humongous_region(hr, pre_used, free_list, humongous_proxy_set, par); |
4937 free_humongous_region(hr, pre_used, free_list, humongous_proxy_set, par); |
4937 } else { |
4938 } else { |
4938 free_region(hr, pre_used, free_list, par); |
4939 free_region(hr, pre_used, free_list, par); |
4939 } |
4940 } |
|
4941 } else { |
|
4942 hr->rem_set()->do_cleanup_work(hrrs_cleanup_task); |
4940 } |
4943 } |
4941 } |
4944 } |
4942 |
4945 |
4943 void G1CollectedHeap::free_region(HeapRegion* hr, |
4946 void G1CollectedHeap::free_region(HeapRegion* hr, |
4944 size_t* pre_used, |
4947 size_t* pre_used, |