< prev index next >

src/hotspot/share/memory/iterator.hpp

Print this page
rev 49497 : [mq]: 8200234-g1concurrentmark-refactorings


 116   template <typename T> void verify(T* p);
 117 
 118   // Can be used by subclasses to turn off the default verification of oop fields.
 119   virtual bool should_verify_oops() { return true; }
 120 #endif
 121 };
 122 
 123 // Wrapper closure only used to implement oop_iterate_no_header().
 124 class NoHeaderExtendedOopClosure : public ExtendedOopClosure {
 125   OopClosure* _wrapped_closure;
 126  public:
 127   NoHeaderExtendedOopClosure(OopClosure* cl) : _wrapped_closure(cl) {}
 128   // Warning: this calls the virtual version do_oop in the the wrapped closure.
 129   void do_oop_nv(oop* p)       { _wrapped_closure->do_oop(p); }
 130   void do_oop_nv(narrowOop* p) { _wrapped_closure->do_oop(p); }
 131 
 132   void do_oop(oop* p)          { assert(false, "Only the _nv versions should be used");
 133                                  _wrapped_closure->do_oop(p); }
 134   void do_oop(narrowOop* p)    { assert(false, "Only the _nv versions should be used");
 135                                  _wrapped_closure->do_oop(p);}



 136 };
 137 
 138 class KlassClosure : public Closure {
 139  public:
 140   virtual void do_klass(Klass* k) = 0;
 141 };
 142 
 143 class CLDClosure : public Closure {
 144  public:
 145   virtual void do_cld(ClassLoaderData* cld) = 0;
 146 };
 147 
 148 
 149 class CLDToOopClosure : public CLDClosure {
 150   OopClosure*       _oop_closure;
 151   bool              _must_claim_cld;
 152 
 153  public:
 154   CLDToOopClosure(OopClosure* oop_closure, bool must_claim_cld = true) :
 155       _oop_closure(oop_closure),




 116   template <typename T> void verify(T* p);
 117 
 118   // Can be used by subclasses to turn off the default verification of oop fields.
 119   virtual bool should_verify_oops() { return true; }
 120 #endif
 121 };
 122 
 123 // Wrapper closure only used to implement oop_iterate_no_header().
 124 class NoHeaderExtendedOopClosure : public ExtendedOopClosure {
 125   OopClosure* _wrapped_closure;
 126  public:
 127   NoHeaderExtendedOopClosure(OopClosure* cl) : _wrapped_closure(cl) {}
 128   // Warning: this calls the virtual version do_oop in the the wrapped closure.
 129   void do_oop_nv(oop* p)       { _wrapped_closure->do_oop(p); }
 130   void do_oop_nv(narrowOop* p) { _wrapped_closure->do_oop(p); }
 131 
 132   void do_oop(oop* p)          { assert(false, "Only the _nv versions should be used");
 133                                  _wrapped_closure->do_oop(p); }
 134   void do_oop(narrowOop* p)    { assert(false, "Only the _nv versions should be used");
 135                                  _wrapped_closure->do_oop(p);}
 136 #ifdef ASSERT
 137   bool should_verify_oops() { return false; }
 138 #endif
 139 };
 140 
 141 class KlassClosure : public Closure {
 142  public:
 143   virtual void do_klass(Klass* k) = 0;
 144 };
 145 
 146 class CLDClosure : public Closure {
 147  public:
 148   virtual void do_cld(ClassLoaderData* cld) = 0;
 149 };
 150 
 151 
 152 class CLDToOopClosure : public CLDClosure {
 153   OopClosure*       _oop_closure;
 154   bool              _must_claim_cld;
 155 
 156  public:
 157   CLDToOopClosure(OopClosure* oop_closure, bool must_claim_cld = true) :
 158       _oop_closure(oop_closure),


< prev index next >