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 |