hotspot/src/share/vm/gc/g1/g1OopClosures.hpp
changeset 46519 40c9c132f961
parent 46445 825b002e05ae
child 46572 fef0d64b2263
equal deleted inserted replaced
46518:69f8479862a2 46519:40c9c132f961
   169   template <class T> void do_oop_nv(T* p);
   169   template <class T> void do_oop_nv(T* p);
   170   virtual void do_oop(      oop* p) { do_oop_nv(p); }
   170   virtual void do_oop(      oop* p) { do_oop_nv(p); }
   171   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
   171   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
   172 };
   172 };
   173 
   173 
       
   174 class G1ConcurrentRefineOopClosure: public ExtendedOopClosure {
       
   175   G1CollectedHeap* _g1;
       
   176   uint _worker_i;
       
   177 
       
   178 public:
       
   179   G1ConcurrentRefineOopClosure(G1CollectedHeap* g1h, uint worker_i) :
       
   180     _g1(g1h),
       
   181     _worker_i(worker_i) {
       
   182   }
       
   183 
       
   184   // This closure needs special handling for InstanceRefKlass.
       
   185   virtual ReferenceIterationMode reference_iteration_mode() { return DO_DISCOVERED_AND_DISCOVERY; }
       
   186 
       
   187   template <class T> void do_oop_nv(T* p);
       
   188   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
       
   189   virtual void do_oop(oop* p) { do_oop_nv(p); }
       
   190 };
       
   191 
   174 class G1UpdateRSOrPushRefOopClosure: public ExtendedOopClosure {
   192 class G1UpdateRSOrPushRefOopClosure: public ExtendedOopClosure {
   175   G1CollectedHeap* _g1;
   193   G1CollectedHeap* _g1;
   176   HeapRegion* _from;
   194   HeapRegion* _from;
   177   G1ParPushHeapRSClosure* _push_ref_cl;
   195   G1ParPushHeapRSClosure* _push_ref_cl;
   178   bool _record_refs_into_cset;
   196   bool _record_refs_into_cset;