< prev index next >

src/share/vm/memory/iterator.hpp

Print this page




 130   KlassToOopClosure(OopClosure* oop_closure = NULL) : _oop_closure(oop_closure) {}
 131 
 132   virtual void do_klass(Klass* k);
 133 };
 134 
 135 class CLDToOopClosure : public CLDClosure {
 136   OopClosure*       _oop_closure;
 137   KlassToOopClosure _klass_closure;
 138   bool              _must_claim_cld;
 139 
 140  public:
 141   CLDToOopClosure(OopClosure* oop_closure, bool must_claim_cld = true) :
 142       _oop_closure(oop_closure),
 143       _klass_closure(oop_closure),
 144       _must_claim_cld(must_claim_cld) {}
 145 
 146   void do_cld(ClassLoaderData* cld);
 147 };
 148 
 149 class CLDToKlassAndOopClosure : public CLDClosure {
 150   friend class SharedHeap;
 151   friend class G1CollectedHeap;
 152  protected:
 153   OopClosure*   _oop_closure;
 154   KlassClosure* _klass_closure;
 155   bool          _must_claim_cld;
 156  public:
 157   CLDToKlassAndOopClosure(KlassClosure* klass_closure,
 158                           OopClosure* oop_closure,
 159                           bool must_claim_cld) :
 160                               _oop_closure(oop_closure),
 161                               _klass_closure(klass_closure),
 162                               _must_claim_cld(must_claim_cld) {}
 163   void do_cld(ClassLoaderData* cld);
 164 };
 165 
 166 // The base class for all concurrent marking closures,
 167 // that participates in class unloading.
 168 // It's used to proxy through the metadata to the oops defined in them.
 169 class MetadataAwareOopClosure: public ExtendedOopClosure {
 170   KlassToOopClosure _klass_closure;




 130   KlassToOopClosure(OopClosure* oop_closure = NULL) : _oop_closure(oop_closure) {}
 131 
 132   virtual void do_klass(Klass* k);
 133 };
 134 
 135 class CLDToOopClosure : public CLDClosure {
 136   OopClosure*       _oop_closure;
 137   KlassToOopClosure _klass_closure;
 138   bool              _must_claim_cld;
 139 
 140  public:
 141   CLDToOopClosure(OopClosure* oop_closure, bool must_claim_cld = true) :
 142       _oop_closure(oop_closure),
 143       _klass_closure(oop_closure),
 144       _must_claim_cld(must_claim_cld) {}
 145 
 146   void do_cld(ClassLoaderData* cld);
 147 };
 148 
 149 class CLDToKlassAndOopClosure : public CLDClosure {

 150   friend class G1CollectedHeap;
 151  protected:
 152   OopClosure*   _oop_closure;
 153   KlassClosure* _klass_closure;
 154   bool          _must_claim_cld;
 155  public:
 156   CLDToKlassAndOopClosure(KlassClosure* klass_closure,
 157                           OopClosure* oop_closure,
 158                           bool must_claim_cld) :
 159                               _oop_closure(oop_closure),
 160                               _klass_closure(klass_closure),
 161                               _must_claim_cld(must_claim_cld) {}
 162   void do_cld(ClassLoaderData* cld);
 163 };
 164 
 165 // The base class for all concurrent marking closures,
 166 // that participates in class unloading.
 167 // It's used to proxy through the metadata to the oops defined in them.
 168 class MetadataAwareOopClosure: public ExtendedOopClosure {
 169   KlassToOopClosure _klass_closure;


< prev index next >