src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp

Print this page




 105 
 106   virtual void do_class_loader_data(ClassLoaderData* cld);
 107 };
 108 
 109 class MarkRefsIntoClosure: public CMSOopsInGenClosure {
 110  private:
 111   const MemRegion _span;
 112   CMSBitMap*      _bitMap;
 113  protected:
 114   DO_OOP_WORK_DEFN
 115  public:
 116   MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap);
 117   virtual void do_oop(oop* p);
 118   virtual void do_oop(narrowOop* p);
 119 
 120   Prefetch::style prefetch_style() {
 121     return Prefetch::do_read;
 122   }
 123 };
 124 


















 125 // A variant of the above used in certain kinds of CMS
 126 // marking verification.
 127 class MarkRefsIntoVerifyClosure: public CMSOopsInGenClosure {
 128  private:
 129   const MemRegion _span;
 130   CMSBitMap*      _verification_bm;
 131   CMSBitMap*      _cms_bm;
 132  protected:
 133   DO_OOP_WORK_DEFN
 134  public:
 135   MarkRefsIntoVerifyClosure(MemRegion span, CMSBitMap* verification_bm,
 136                             CMSBitMap* cms_bm);
 137   virtual void do_oop(oop* p);
 138   virtual void do_oop(narrowOop* p);
 139 
 140   Prefetch::style prefetch_style() {
 141     return Prefetch::do_read;
 142   }
 143 };
 144 




 105 
 106   virtual void do_class_loader_data(ClassLoaderData* cld);
 107 };
 108 
 109 class MarkRefsIntoClosure: public CMSOopsInGenClosure {
 110  private:
 111   const MemRegion _span;
 112   CMSBitMap*      _bitMap;
 113  protected:
 114   DO_OOP_WORK_DEFN
 115  public:
 116   MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap);
 117   virtual void do_oop(oop* p);
 118   virtual void do_oop(narrowOop* p);
 119 
 120   Prefetch::style prefetch_style() {
 121     return Prefetch::do_read;
 122   }
 123 };
 124 
 125 class Par_MarkRefsIntoClosure: public OopsInGenClosure {
 126  private:
 127   const MemRegion _span;
 128   CMSBitMap*      _bitMap;
 129  protected:
 130   DO_OOP_WORK_DEFN
 131  public:
 132   Par_MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap);
 133   virtual void do_oop(oop* p);
 134   virtual void do_oop(narrowOop* p);
 135   inline void do_oop_nv(oop* p)       { Par_MarkRefsIntoClosure::do_oop_work(p); }
 136   inline void do_oop_nv(narrowOop* p) { Par_MarkRefsIntoClosure::do_oop_work(p); }
 137   bool do_header() { return true; }
 138   Prefetch::style prefetch_style() {
 139     return Prefetch::do_read;
 140   }
 141 };
 142 
 143 // A variant of the above used in certain kinds of CMS
 144 // marking verification.
 145 class MarkRefsIntoVerifyClosure: public CMSOopsInGenClosure {
 146  private:
 147   const MemRegion _span;
 148   CMSBitMap*      _verification_bm;
 149   CMSBitMap*      _cms_bm;
 150  protected:
 151   DO_OOP_WORK_DEFN
 152  public:
 153   MarkRefsIntoVerifyClosure(MemRegion span, CMSBitMap* verification_bm,
 154                             CMSBitMap* cms_bm);
 155   virtual void do_oop(oop* p);
 156   virtual void do_oop(narrowOop* p);
 157 
 158   Prefetch::style prefetch_style() {
 159     return Prefetch::do_read;
 160   }
 161 };
 162