comparison src/share/vm/oops/klass.hpp @ 20278:2c6ef90f030a

8049421: G1 Class Unloading after completing a concurrent mark cycle Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov Contributed-by: stefan.karlsson@oracle.com, mikael.gerdin@oracle.com
author stefank
date Mon, 07 Jul 2014 10:12:40 +0200
parents 76b588255908
children 6e0cb14ce59b
comparison
equal deleted inserted replaced
20277:882004b9e7e1 20278:2c6ef90f030a
581 // Iff the class loader (or mirror for anonymous classes) is alive the 581 // Iff the class loader (or mirror for anonymous classes) is alive the
582 // Klass is considered alive. 582 // Klass is considered alive.
583 // The is_alive closure passed in depends on the Garbage Collector used. 583 // The is_alive closure passed in depends on the Garbage Collector used.
584 bool is_loader_alive(BoolObjectClosure* is_alive); 584 bool is_loader_alive(BoolObjectClosure* is_alive);
585 585
586 static void clean_weak_klass_links(BoolObjectClosure* is_alive); 586 static void clean_weak_klass_links(BoolObjectClosure* is_alive, bool clean_alive_klasses = true);
587 static void clean_subklass_tree(BoolObjectClosure* is_alive) {
588 clean_weak_klass_links(is_alive, false /* clean_alive_klasses */);
589 }
587 590
588 // iterators 591 // iterators
589 virtual int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) = 0; 592 virtual int oop_oop_iterate(oop obj, ExtendedOopClosure* blk) = 0;
590 virtual int oop_oop_iterate_v(oop obj, ExtendedOopClosure* blk) { 593 virtual int oop_oop_iterate_v(oop obj, ExtendedOopClosure* blk) {
591 return oop_oop_iterate(obj, blk); 594 return oop_oop_iterate(obj, blk);
688 static Klass* decode_klass(narrowKlass v); 691 static Klass* decode_klass(narrowKlass v);
689 692
690 private: 693 private:
691 // barriers used by klass_oop_store 694 // barriers used by klass_oop_store
692 void klass_update_barrier_set(oop v); 695 void klass_update_barrier_set(oop v);
693 void klass_update_barrier_set_pre(void* p, oop v); 696 void klass_update_barrier_set_pre(oop* p, oop v);
694 }; 697 };
695 698
696 #endif // SHARE_VM_OOPS_KLASS_HPP 699 #endif // SHARE_VM_OOPS_KLASS_HPP