< prev index next >

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

Print this page

        

*** 42,62 **** --- 42,72 ---- // generations are assumed to support marking; those that can also support // compaction. // // Class unloading will only occur when a full gc is invoked. class G1PrepareCompactClosure; + class G1ArchiveRegionMap; class G1MarkSweep : AllStatic { public: static void invoke_at_safepoint(ReferenceProcessor* rp, bool clear_all_softrefs); static STWGCTimer* gc_timer() { return GenMarkSweep::_gc_timer; } static SerialOldTracer* gc_tracer() { return GenMarkSweep::_gc_tracer; } + // Support for 'archive' objects, to prevent objects in archive regions + // from being marked by full GCs. + static void enable_archive_object_check(); + static void mark_range_archive(HeapWord* start, HeapWord* end); + static bool in_archive_range(oop object); + static bool archive_check_enabled() { return G1MarkSweep::_archive_check_enabled; } + private: + static bool _archive_check_enabled; + static G1ArchiveRegionMap _archive_region_map; // Mark live objects static void mark_sweep_phase1(bool& marked_for_deopt, bool clear_all_softrefs); // Calculate new addresses
*** 91,96 **** --- 101,111 ---- void update_sets(); bool doHeapRegion(HeapRegion* hr); }; + class G1ArchiveRegionMap : public G1BiasedMappedArray<bool> { + protected: + bool default_value() const { return false; } + }; + #endif // SHARE_VM_GC_G1_G1MARKSWEEP_HPP
< prev index next >