Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
    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();
    }