hotspot/src/share/vm/oops/klass.hpp
changeset 25492 d27050bdfb04
parent 25491 70fb742e40aa
child 26135 82b516c550f7
equal deleted inserted replaced
25491:70fb742e40aa 25492:d27050bdfb04
   551   // Iff the class loader (or mirror for anonymous classes) is alive the
   551   // Iff the class loader (or mirror for anonymous classes) is alive the
   552   // Klass is considered alive.
   552   // Klass is considered alive.
   553   // The is_alive closure passed in depends on the Garbage Collector used.
   553   // The is_alive closure passed in depends on the Garbage Collector used.
   554   bool is_loader_alive(BoolObjectClosure* is_alive);
   554   bool is_loader_alive(BoolObjectClosure* is_alive);
   555 
   555 
   556   static void clean_weak_klass_links(BoolObjectClosure* is_alive);
   556   static void clean_weak_klass_links(BoolObjectClosure* is_alive, bool clean_alive_klasses = true);
       
   557   static void clean_subklass_tree(BoolObjectClosure* is_alive) {
       
   558     clean_weak_klass_links(is_alive, false /* clean_alive_klasses */);
       
   559   }
   557 
   560 
   558   // iterators
   561   // iterators
   559   virtual int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) = 0;
   562   virtual int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) = 0;
   560   virtual int oop_oop_iterate_v(oop obj, ExtendedOopClosure* blk) {
   563   virtual int oop_oop_iterate_v(oop obj, ExtendedOopClosure* blk) {
   561     return oop_oop_iterate(obj, blk);
   564     return oop_oop_iterate(obj, blk);
   658   static Klass* decode_klass(narrowKlass v);
   661   static Klass* decode_klass(narrowKlass v);
   659 
   662 
   660  private:
   663  private:
   661   // barriers used by klass_oop_store
   664   // barriers used by klass_oop_store
   662   void klass_update_barrier_set(oop v);
   665   void klass_update_barrier_set(oop v);
   663   void klass_update_barrier_set_pre(void* p, oop v);
   666   void klass_update_barrier_set_pre(oop* p, oop v);
   664 };
   667 };
   665 
   668 
   666 #endif // SHARE_VM_OOPS_KLASS_HPP
   669 #endif // SHARE_VM_OOPS_KLASS_HPP