< prev index next >

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

Print this page

56 
57   virtual void do_oop(oop* p);
58   virtual void do_oop(narrowOop* p);
59 };
60 
61 class G1MarkAndPushClosure : public ClaimMetadataVisitingOopIterateClosure {
62   G1FullGCMarker* _marker;
63   uint _worker_id;
64 
65 public:
66   G1MarkAndPushClosure(uint worker_id, G1FullGCMarker* marker, int claim, ReferenceDiscoverer* ref) :
67     ClaimMetadataVisitingOopIterateClosure(claim, ref),
68     _marker(marker),
69     _worker_id(worker_id) { }
70 
71   template <class T> inline void do_oop_work(T* p);
72   virtual void do_oop(oop* p);
73   virtual void do_oop(narrowOop* p);
74 };
75 

76 class G1AdjustClosure : public BasicOopIterateClosure {
77   G1FullCollector* _collector;
78 
79   template <class T> inline void adjust_pointer(T* p);
80 public:
81   G1AdjustClosure(G1FullCollector* collector) : _collector(collector) { }
82   template <class T> void do_oop_work(T* p) { adjust_pointer(p); }
83   virtual void do_oop(oop* p);
84   virtual void do_oop(narrowOop* p);
85 
86   virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
87 };
88 
89 class G1FollowStackClosure: public VoidClosure {
90   G1FullGCMarker* _marker;
91 
92 public:
93   G1FollowStackClosure(G1FullGCMarker* marker) : _marker(marker) {}
94   virtual void do_void();
95 };

56 
57   virtual void do_oop(oop* p);
58   virtual void do_oop(narrowOop* p);
59 };
60 
61 class G1MarkAndPushClosure : public ClaimMetadataVisitingOopIterateClosure {
62   G1FullGCMarker* _marker;
63   uint _worker_id;
64 
65 public:
66   G1MarkAndPushClosure(uint worker_id, G1FullGCMarker* marker, int claim, ReferenceDiscoverer* ref) :
67     ClaimMetadataVisitingOopIterateClosure(claim, ref),
68     _marker(marker),
69     _worker_id(worker_id) { }
70 
71   template <class T> inline void do_oop_work(T* p);
72   virtual void do_oop(oop* p);
73   virtual void do_oop(narrowOop* p);
74 };
75 
76 template <bool ALT_FWD>
77 class G1AdjustClosure : public BasicOopIterateClosure {
78   G1FullCollector* _collector;
79 
80   template <class T> inline void adjust_pointer(T* p);
81 public:
82   G1AdjustClosure(G1FullCollector* collector) : _collector(collector) { }
83   template <class T> void do_oop_work(T* p) { adjust_pointer(p); }
84   virtual void do_oop(oop* p);
85   virtual void do_oop(narrowOop* p);
86 
87   virtual ReferenceIterationMode reference_iteration_mode() { return DO_FIELDS; }
88 };
89 
90 class G1FollowStackClosure: public VoidClosure {
91   G1FullGCMarker* _marker;
92 
93 public:
94   G1FollowStackClosure(G1FullGCMarker* marker) : _marker(marker) {}
95   virtual void do_void();
96 };
< prev index next >