< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp

Print this page

        

*** 374,379 **** --- 374,396 ---- set_humongous_reclaim_candidate(region, false); _in_cset_fast_test.clear_humongous(region); } } + inline bool G1CollectedHeap::requires_marking(const void* entry) const { + // Includes rejection of NULL pointers. + assert(is_in_reserved(entry), + err_msg("Non-heap pointer in SATB buffer: " PTR_FORMAT, p2i(entry))); + + HeapRegion* region = heap_region_containing(entry); + assert(region != NULL, err_msg("No region for " PTR_FORMAT, p2i(entry))); + if (entry >= region->next_top_at_mark_start()) { + return false; + } + + assert(((oop)entry)->is_oop(true /* ignore mark word */), + err_msg("Invalid oop in SATB buffer: " PTR_FORMAT, p2i(entry))); + + return ! isMarkedNext((oop) entry); + } + #endif // SHARE_VM_GC_IMPLEMENTATION_G1_G1COLLECTEDHEAP_INLINE_HPP
< prev index next >