< prev index next >

src/hotspot/share/gc/g1/g1OopClosures.hpp

Print this page

        

*** 37,47 **** class G1CMBitMap; class G1ParScanThreadState; class G1CMTask; class ReferenceProcessor; ! class G1ScanClosureBase : public ExtendedOopClosure { protected: G1CollectedHeap* _g1h; G1ParScanThreadState* _par_scan_state; HeapRegion* _from; --- 37,47 ---- class G1CMBitMap; class G1ParScanThreadState; class G1CMTask; class ReferenceProcessor; ! class G1ScanClosureBase : public BasicOopIterateClosure { protected: G1CollectedHeap* _g1h; G1ParScanThreadState* _par_scan_state; HeapRegion* _from;
*** 69,104 **** G1ScanObjsDuringUpdateRSClosure(G1CollectedHeap* g1h, G1ParScanThreadState* pss, uint worker_i) : G1ScanClosureBase(g1h, pss), _worker_i(worker_i) { } ! template <class T> void do_oop_nv(T* p); ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } ! virtual void do_oop(oop* p) { do_oop_nv(p); } }; // Used during the Scan RS phase to scan cards from the remembered set during garbage collection. class G1ScanObjsDuringScanRSClosure : public G1ScanClosureBase { public: G1ScanObjsDuringScanRSClosure(G1CollectedHeap* g1h, G1ParScanThreadState* par_scan_state): G1ScanClosureBase(g1h, par_scan_state) { } ! template <class T> void do_oop_nv(T* p); ! virtual void do_oop(oop* p) { do_oop_nv(p); } ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } }; // This closure is applied to the fields of the objects that have just been copied during evacuation. class G1ScanEvacuatedObjClosure : public G1ScanClosureBase { public: G1ScanEvacuatedObjClosure(G1CollectedHeap* g1h, G1ParScanThreadState* par_scan_state) : G1ScanClosureBase(g1h, par_scan_state) { } ! template <class T> void do_oop_nv(T* p); ! virtual void do_oop(oop* p) { do_oop_nv(p); } ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } void set_ref_discoverer(ReferenceDiscoverer* rd) { set_ref_discoverer_internal(rd); } }; --- 69,104 ---- G1ScanObjsDuringUpdateRSClosure(G1CollectedHeap* g1h, G1ParScanThreadState* pss, uint worker_i) : G1ScanClosureBase(g1h, pss), _worker_i(worker_i) { } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } ! virtual void do_oop(oop* p) { do_oop_work(p); } }; // Used during the Scan RS phase to scan cards from the remembered set during garbage collection. class G1ScanObjsDuringScanRSClosure : public G1ScanClosureBase { public: G1ScanObjsDuringScanRSClosure(G1CollectedHeap* g1h, G1ParScanThreadState* par_scan_state): G1ScanClosureBase(g1h, par_scan_state) { } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } }; // This closure is applied to the fields of the objects that have just been copied during evacuation. class G1ScanEvacuatedObjClosure : public G1ScanClosureBase { public: G1ScanEvacuatedObjClosure(G1CollectedHeap* g1h, G1ParScanThreadState* par_scan_state) : G1ScanClosureBase(g1h, par_scan_state) { } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } void set_ref_discoverer(ReferenceDiscoverer* rd) { set_ref_discoverer_internal(rd); } };
*** 165,199 **** : _process_only_dirty(process_only_dirty), _must_claim(must_claim), _closure(closure), _count(0) {} void do_cld(ClassLoaderData* cld); }; // Closure for iterating over object fields during concurrent marking ! class G1CMOopClosure : public MetadataAwareOopClosure { G1CollectedHeap* _g1h; G1CMTask* _task; public: G1CMOopClosure(G1CollectedHeap* g1h,G1CMTask* task); ! template <class T> void do_oop_nv(T* p); ! virtual void do_oop( oop* p) { do_oop_nv(p); } ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } }; // Closure to scan the root regions during concurrent marking ! class G1RootRegionScanClosure : public MetadataAwareOopClosure { private: G1CollectedHeap* _g1h; G1ConcurrentMark* _cm; uint _worker_id; public: G1RootRegionScanClosure(G1CollectedHeap* g1h, G1ConcurrentMark* cm, uint worker_id) : _g1h(g1h), _cm(cm), _worker_id(worker_id) { } ! template <class T> void do_oop_nv(T* p); ! virtual void do_oop( oop* p) { do_oop_nv(p); } ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } }; ! class G1ConcurrentRefineOopClosure: public ExtendedOopClosure { G1CollectedHeap* _g1h; uint _worker_i; public: G1ConcurrentRefineOopClosure(G1CollectedHeap* g1h, uint worker_i) : --- 165,199 ---- : _process_only_dirty(process_only_dirty), _must_claim(must_claim), _closure(closure), _count(0) {} void do_cld(ClassLoaderData* cld); }; // Closure for iterating over object fields during concurrent marking ! class G1CMOopClosure : public MetadataVisitingOopIterateClosure { G1CollectedHeap* _g1h; G1CMTask* _task; public: G1CMOopClosure(G1CollectedHeap* g1h,G1CMTask* task); ! template <class T> void do_oop_work(T* p); ! virtual void do_oop( oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } }; // Closure to scan the root regions during concurrent marking ! class G1RootRegionScanClosure : public MetadataVisitingOopIterateClosure { private: G1CollectedHeap* _g1h; G1ConcurrentMark* _cm; uint _worker_id; public: G1RootRegionScanClosure(G1CollectedHeap* g1h, G1ConcurrentMark* cm, uint worker_id) : _g1h(g1h), _cm(cm), _worker_id(worker_id) { } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop( oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } }; ! class G1ConcurrentRefineOopClosure: public BasicOopIterateClosure { G1CollectedHeap* _g1h; uint _worker_i; public: G1ConcurrentRefineOopClosure(G1CollectedHeap* g1h, uint worker_i) :
*** 202,226 **** } // This closure needs special handling for InstanceRefKlass. virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; } ! template <class T> void do_oop_nv(T* p); ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } ! virtual void do_oop(oop* p) { do_oop_nv(p); } }; ! class G1RebuildRemSetClosure : public ExtendedOopClosure { G1CollectedHeap* _g1h; uint _worker_id; public: G1RebuildRemSetClosure(G1CollectedHeap* g1h, uint worker_id) : _g1h(g1h), _worker_id(worker_id) { } ! template <class T> void do_oop_nv(T* p); ! virtual void do_oop(oop* p) { do_oop_nv(p); } ! virtual void do_oop(narrowOop* p) { do_oop_nv(p); } // This closure needs special handling for InstanceRefKlass. virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; } }; #endif // SHARE_VM_GC_G1_G1OOPCLOSURES_HPP --- 202,226 ---- } // This closure needs special handling for InstanceRefKlass. virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } ! virtual void do_oop(oop* p) { do_oop_work(p); } }; ! class G1RebuildRemSetClosure : public BasicOopIterateClosure { G1CollectedHeap* _g1h; uint _worker_id; public: G1RebuildRemSetClosure(G1CollectedHeap* g1h, uint worker_id) : _g1h(g1h), _worker_id(worker_id) { } ! template <class T> void do_oop_work(T* p); ! virtual void do_oop(oop* p) { do_oop_work(p); } ! virtual void do_oop(narrowOop* p) { do_oop_work(p); } // This closure needs special handling for InstanceRefKlass. virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; } }; #endif // SHARE_VM_GC_G1_G1OOPCLOSURES_HPP
< prev index next >