src/hotspot/share/memory/iterator.hpp
changeset 50800 6da12aa23b88
parent 50752 9d62da00bf15
child 50801 94b56c8594ef
equal deleted inserted replaced
50799:f9ae777f71ee 50800:6da12aa23b88
   113   BasicOopIterateClosure(ReferenceDiscoverer* rd = NULL) : OopIterateClosure(rd) {}
   113   BasicOopIterateClosure(ReferenceDiscoverer* rd = NULL) : OopIterateClosure(rd) {}
   114 
   114 
   115   virtual bool do_metadata() { return false; }
   115   virtual bool do_metadata() { return false; }
   116   virtual void do_klass(Klass* k) { ShouldNotReachHere(); }
   116   virtual void do_klass(Klass* k) { ShouldNotReachHere(); }
   117   virtual void do_cld(ClassLoaderData* cld) { ShouldNotReachHere(); }
   117   virtual void do_cld(ClassLoaderData* cld) { ShouldNotReachHere(); }
   118 };
       
   119 
       
   120 // Wrapper closure only used to implement oop_iterate_no_header().
       
   121 class NoHeaderExtendedOopClosure : public BasicOopIterateClosure {
       
   122   OopClosure* _wrapped_closure;
       
   123  public:
       
   124   NoHeaderExtendedOopClosure(OopClosure* cl) : _wrapped_closure(cl) {}
       
   125   // Warning: this calls the virtual version do_oop in the the wrapped closure.
       
   126   virtual void do_oop(oop* p)       { _wrapped_closure->do_oop(p); }
       
   127   virtual void do_oop(narrowOop* p) { _wrapped_closure->do_oop(p); }
       
   128 };
   118 };
   129 
   119 
   130 class KlassClosure : public Closure {
   120 class KlassClosure : public Closure {
   131  public:
   121  public:
   132   virtual void do_klass(Klass* k) = 0;
   122   virtual void do_klass(Klass* k) = 0;