< prev index next >

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

Print this page
rev 9605 : imported patch in-cset-ext


 104 
 105   G1ParCopyHelper(G1CollectedHeap* g1,  G1ParScanThreadState* par_scan_state);
 106   ~G1ParCopyHelper() { }
 107 
 108  public:
 109   void set_scanned_klass(Klass* k) { _scanned_klass = k; }
 110   template <class T> inline void do_klass_barrier(T* p, oop new_obj);
 111 };
 112 
 113 enum G1Barrier {
 114   G1BarrierNone,
 115   G1BarrierKlass
 116 };
 117 
 118 enum G1Mark {
 119   G1MarkNone,
 120   G1MarkFromRoot,
 121   G1MarkPromotedFromRoot
 122 };
 123 
 124 template <G1Barrier barrier, G1Mark do_mark_object>
 125 class G1ParCopyClosure : public G1ParCopyHelper {
 126 public:
 127   G1ParCopyClosure(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state) :
 128       G1ParCopyHelper(g1, par_scan_state) {
 129     assert(ref_processor() == NULL, "sanity");
 130   }
 131 
 132   template <class T> void do_oop_nv(T* p);
 133   virtual void do_oop(oop* p)       { do_oop_nv(p); }
 134   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
 135 };
 136 
 137 class G1KlassScanClosure : public KlassClosure {
 138  G1ParCopyHelper* _closure;
 139  bool             _process_only_dirty;
 140  int              _count;
 141  public:
 142   G1KlassScanClosure(G1ParCopyHelper* closure, bool process_only_dirty)
 143       : _process_only_dirty(process_only_dirty), _closure(closure), _count(0) {}
 144   void do_klass(Klass* klass);




 104 
 105   G1ParCopyHelper(G1CollectedHeap* g1,  G1ParScanThreadState* par_scan_state);
 106   ~G1ParCopyHelper() { }
 107 
 108  public:
 109   void set_scanned_klass(Klass* k) { _scanned_klass = k; }
 110   template <class T> inline void do_klass_barrier(T* p, oop new_obj);
 111 };
 112 
 113 enum G1Barrier {
 114   G1BarrierNone,
 115   G1BarrierKlass
 116 };
 117 
 118 enum G1Mark {
 119   G1MarkNone,
 120   G1MarkFromRoot,
 121   G1MarkPromotedFromRoot
 122 };
 123 
 124 template <G1Barrier barrier, G1Mark do_mark_object, bool use_ext>
 125 class G1ParCopyClosure : public G1ParCopyHelper {
 126 public:
 127   G1ParCopyClosure(G1CollectedHeap* g1, G1ParScanThreadState* par_scan_state) :
 128       G1ParCopyHelper(g1, par_scan_state) {
 129     assert(ref_processor() == NULL, "sanity");
 130   }
 131 
 132   template <class T> void do_oop_nv(T* p);
 133   virtual void do_oop(oop* p)       { do_oop_nv(p); }
 134   virtual void do_oop(narrowOop* p) { do_oop_nv(p); }
 135 };
 136 
 137 class G1KlassScanClosure : public KlassClosure {
 138  G1ParCopyHelper* _closure;
 139  bool             _process_only_dirty;
 140  int              _count;
 141  public:
 142   G1KlassScanClosure(G1ParCopyHelper* closure, bool process_only_dirty)
 143       : _process_only_dirty(process_only_dirty), _closure(closure), _count(0) {}
 144   void do_klass(Klass* klass);


< prev index next >