comparison src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp @ 994:753cf9794df9

6885169: merge of 4957990 and 6863023 causes conflict on do_nmethods Summary: After mechanically merging changes, some by-hand adjustments are needed. Reviewed-by: ysr
author jrose
date Wed, 23 Sep 2009 23:57:44 -0700
parents 54b3b351d6f9
children c18cbe5936b8
comparison
equal deleted inserted replaced
993:54b3b351d6f9 994:753cf9794df9
45 45
46 class MarkRefsIntoClosure: public OopsInGenClosure { 46 class MarkRefsIntoClosure: public OopsInGenClosure {
47 private: 47 private:
48 const MemRegion _span; 48 const MemRegion _span;
49 CMSBitMap* _bitMap; 49 CMSBitMap* _bitMap;
50 const bool _should_do_nmethods; 50 protected:
51 protected: 51 DO_OOP_WORK_DEFN
52 DO_OOP_WORK_DEFN 52 public:
53 public: 53 MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap);
54 MarkRefsIntoClosure(MemRegion span, CMSBitMap* bitMap,
55 bool should_do_nmethods);
56 bool should_do_nmethods() { return _should_do_nmethods; }
57 virtual void do_oop(oop* p); 54 virtual void do_oop(oop* p);
58 virtual void do_oop(narrowOop* p); 55 virtual void do_oop(narrowOop* p);
59 inline void do_oop_nv(oop* p) { MarkRefsIntoClosure::do_oop_work(p); } 56 inline void do_oop_nv(oop* p) { MarkRefsIntoClosure::do_oop_work(p); }
60 inline void do_oop_nv(narrowOop* p) { MarkRefsIntoClosure::do_oop_work(p); } 57 inline void do_oop_nv(narrowOop* p) { MarkRefsIntoClosure::do_oop_work(p); }
61 bool do_header() { return true; } 58 bool do_header() { return true; }
69 class MarkRefsIntoVerifyClosure: public OopsInGenClosure { 66 class MarkRefsIntoVerifyClosure: public OopsInGenClosure {
70 private: 67 private:
71 const MemRegion _span; 68 const MemRegion _span;
72 CMSBitMap* _verification_bm; 69 CMSBitMap* _verification_bm;
73 CMSBitMap* _cms_bm; 70 CMSBitMap* _cms_bm;
74 const bool _should_do_nmethods;
75 protected: 71 protected:
76 DO_OOP_WORK_DEFN 72 DO_OOP_WORK_DEFN
77 public: 73 public:
78 MarkRefsIntoVerifyClosure(MemRegion span, CMSBitMap* verification_bm, 74 MarkRefsIntoVerifyClosure(MemRegion span, CMSBitMap* verification_bm,
79 CMSBitMap* cms_bm, bool should_do_nmethods); 75 CMSBitMap* cms_bm);
80 bool should_do_nmethods() { return _should_do_nmethods; }
81 virtual void do_oop(oop* p); 76 virtual void do_oop(oop* p);
82 virtual void do_oop(narrowOop* p); 77 virtual void do_oop(narrowOop* p);
83 inline void do_oop_nv(oop* p) { MarkRefsIntoVerifyClosure::do_oop_work(p); } 78 inline void do_oop_nv(oop* p) { MarkRefsIntoVerifyClosure::do_oop_work(p); }
84 inline void do_oop_nv(narrowOop* p) { MarkRefsIntoVerifyClosure::do_oop_work(p); } 79 inline void do_oop_nv(narrowOop* p) { MarkRefsIntoVerifyClosure::do_oop_work(p); }
85 bool do_header() { return true; } 80 bool do_header() { return true; }
266 virtual void do_oop(oop* p); 261 virtual void do_oop(oop* p);
267 virtual void do_oop(narrowOop* p); 262 virtual void do_oop(narrowOop* p);
268 inline void do_oop_nv(oop* p) { Par_MarkRefsIntoAndScanClosure::do_oop_work(p); } 263 inline void do_oop_nv(oop* p) { Par_MarkRefsIntoAndScanClosure::do_oop_work(p); }
269 inline void do_oop_nv(narrowOop* p) { Par_MarkRefsIntoAndScanClosure::do_oop_work(p); } 264 inline void do_oop_nv(narrowOop* p) { Par_MarkRefsIntoAndScanClosure::do_oop_work(p); }
270 bool do_header() { return true; } 265 bool do_header() { return true; }
271 virtual const bool do_nmethods() const { return true; }
272 // When ScanMarkedObjectsAgainClosure is used, 266 // When ScanMarkedObjectsAgainClosure is used,
273 // it passes [Par_]MarkRefsIntoAndScanClosure to oop_oop_iterate(), 267 // it passes [Par_]MarkRefsIntoAndScanClosure to oop_oop_iterate(),
274 // and this delegation is used. 268 // and this delegation is used.
275 virtual const bool should_remember_klasses() const { 269 virtual const bool should_remember_klasses() const {
276 return _par_pushAndMarkClosure.should_remember_klasses(); 270 return _par_pushAndMarkClosure.should_remember_klasses();