< prev index next >

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

Print this page
rev 12847 : imported patch 8071280-specialize-heapregion-oops-on-card-seq-iterate
rev 12848 : imported patch 8162928-micro-optimizations-in-remembered-set-scan

*** 70,105 **** p2i((_hr_)->bottom()), p2i((_hr_)->top()), p2i((_hr_)->end()) // sentinel value for hrm_index #define G1_NO_HRM_INDEX ((uint) -1) - // A dirty card to oop closure for heap regions. It - // knows how to get the G1 heap and how to use the bitmap - // in the concurrent marker used by G1 to filter remembered - // sets. - - class HeapRegionDCTOC : public DirtyCardToOopClosure { - private: - HeapRegion* _hr; - G1ParPushHeapRSClosure* _rs_scan; - G1CollectedHeap* _g1; - - // Walk the given memory region from bottom to (actual) top - // looking for objects and applying the oop closure (_cl) to - // them. The base implementation of this treats the area as - // blocks, where a block may or may not be an object. Sub- - // classes should override this to provide more accurate - // or possibly more efficient walking. - void walk_mem_region(MemRegion mr, HeapWord* bottom, HeapWord* top); - - public: - HeapRegionDCTOC(G1CollectedHeap* g1, - HeapRegion* hr, - G1ParPushHeapRSClosure* cl, - CardTableModRefBS::PrecisionStyle precision); - }; - // The complicating factor is that BlockOffsetTable diverged // significantly, and we need functionality that is only in the G1 version. // So I copied that code, which led to an alternate G1 version of // OffsetTableContigSpace. If the two versions of BlockOffsetTable could // be reconciled, then G1OffsetTableContigSpace could go away. --- 70,79 ----
< prev index next >