diff -r 3cfab71d6c81 -r 5caa1d5f74c1 src/hotspot/share/gc/g1/heapRegion.hpp --- a/src/hotspot/share/gc/g1/heapRegion.hpp Mon Oct 30 08:34:54 2017 +0100 +++ b/src/hotspot/share/gc/g1/heapRegion.hpp Tue Nov 14 11:33:23 2017 +0100 @@ -57,6 +57,7 @@ class G1CollectedHeap; class G1CMBitMap; +class G1IsAliveAndApplyClosure; class HeapRegionRemSet; class HeapRegionRemSetIterator; class HeapRegion; @@ -355,8 +356,14 @@ // and the amount of unallocated words if called on top() size_t block_size(const HeapWord* p) const; + // Scans through the region using the bitmap to determine what + // objects to call size_t ApplyToMarkedClosure::apply(oop) for. + template + inline void apply_to_marked_objects(G1CMBitMap* bitmap, ApplyToMarkedClosure* closure); // Override for scan_and_forward support. void prepare_for_compaction(CompactPoint* cp); + // Update heap region to be consistent after compaction. + void complete_compaction(); inline HeapWord* par_allocate_no_bot_updates(size_t min_word_size, size_t desired_word_size, size_t* word_size); inline HeapWord* allocate_no_bot_updates(size_t word_size); @@ -672,10 +679,6 @@ _predicted_elapsed_time_ms = ms; } - virtual CompactibleSpace* next_compaction_space() const; - - virtual void reset_after_compaction(); - // Routines for managing a list of code roots (attached to the // this region's RSet) that point into this heap region. void add_strong_code_root(nmethod* nm); @@ -693,9 +696,9 @@ void print() const; void print_on(outputStream* st) const; - // vo == UsePrevMarking -> use "prev" marking information, + // vo == UsePrevMarking -> use "prev" marking information, // vo == UseNextMarking -> use "next" marking information - // vo == UseMarkWord -> use the mark word in the object header + // vo == UseFullMarking -> use "next" marking bitmap but no TAMS // // NOTE: Only the "prev" marking information is guaranteed to be // consistent most of the time, so most calls to this should use @@ -704,7 +707,7 @@ // vo == UseNextMarking, which is to verify the "next" marking // information at the end of remark. // Currently there is only one place where this is called with - // vo == UseMarkWord, which is to verify the marking during a + // vo == UseFullMarking, which is to verify the marking during a // full GC. void verify(VerifyOption vo, bool *failures) const;