< prev index next >

src/share/vm/gc/g1/g1MarkSweep.cpp

Print this page
rev 12504 : 8171235: Move archive object code from G1MarkSweep into G1ArchiveAllocator
Reviewed-by:

*** 54,66 **** #include "utilities/copy.hpp" #include "utilities/events.hpp" class HeapRegion; - bool G1MarkSweep::_archive_check_enabled = false; - G1ArchiveRegionMap G1MarkSweep::_archive_region_map; - void G1MarkSweep::invoke_at_safepoint(ReferenceProcessor* rp, bool clear_all_softrefs) { assert(SafepointSynchronize::is_at_safepoint(), "must be at a safepoint"); #ifdef ASSERT --- 54,63 ----
*** 312,341 **** G1SpaceCompactClosure blk; g1h->heap_region_iterate(&blk); } - void G1MarkSweep::enable_archive_object_check() { - assert(!_archive_check_enabled, "archive range check already enabled"); - _archive_check_enabled = true; - size_t length = Universe::heap()->max_capacity(); - _archive_region_map.initialize((HeapWord*)Universe::heap()->base(), - (HeapWord*)Universe::heap()->base() + length, - HeapRegion::GrainBytes); - } - - void G1MarkSweep::set_range_archive(MemRegion range, bool is_archive) { - assert(_archive_check_enabled, "archive range check not enabled"); - _archive_region_map.set_by_address(range, is_archive); - } - - bool G1MarkSweep::in_archive_range(oop object) { - // This is the out-of-line part of is_archive_object test, done separately - // to avoid additional performance impact when the check is not enabled. - return _archive_region_map.get_by_address((HeapWord*)object); - } - void G1MarkSweep::prepare_compaction_work(G1PrepareCompactClosure* blk) { G1CollectedHeap* g1h = G1CollectedHeap::heap(); g1h->heap_region_iterate(blk); blk->update_sets(); } --- 309,318 ----
< prev index next >