void G1PrepareCompactClosure::free_humongous_region(HeapRegion* hr) { HeapWord* end = hr->end(); FreeRegionList dummy_free_list("Dummy Free List for G1MarkSweep"); hr->set_containing_set(NULL); _humongous_regions_removed++; _g1h->free_humongous_region(hr, &dummy_free_list, false /* skip_remset */); prepare_for_compaction(hr, end); dummy_free_list.remove_all(); }
void G1PrepareCompactClosure::free_humongous_region(HeapRegion* hr) { HeapWord* end = hr->end(); FreeRegionList dummy_free_list("Dummy Free List for G1MarkSweep"); assert(hr->is_starts_humongous(), "Only the start of a humongous region should be freed."); hr->set_containing_set(NULL); _humongous_regions_removed.increment(1u, hr->capacity()); _g1h->free_humongous_region(hr, &dummy_free_list, false /* par */); prepare_for_compaction(hr, end); dummy_free_list.remove_all(); }
void free_humongous_region(HeapRegion* hr) { HeapWord* end = hr->end(); size_t dummy_pre_used; FreeRegionList dummy_free_list("Dummy Free List for G1MarkSweep"); assert(hr->startsHumongous(), "Only the start of a humongous region should be freed."); _g1h->free_humongous_region(hr, &dummy_pre_used, &dummy_free_list, &_humongous_proxy_set, false /* par */); hr->prepare_for_compaction(&_cp); // Also clear the part of the card table that will be unused after // compaction. _mrbs->clear(MemRegion(hr->compaction_top(), end)); dummy_free_list.remove_all(); }