< prev index next >

src/share/vm/oops/klass.hpp

Print this page
rev 12851 : 8138737: Remove oop_ms_adjust_pointers and use oop_iterate instead
Reviewed-by:


 590   jlong last_biased_lock_bulk_revocation_time() { return _last_biased_lock_bulk_revocation_time; }
 591   void  set_last_biased_lock_bulk_revocation_time(jlong cur_time) { _last_biased_lock_bulk_revocation_time = cur_time; }
 592 
 593   TRACE_DEFINE_TRACE_ID_METHODS;
 594 
 595   // garbage collection support
 596   void oops_do(OopClosure* cl);
 597 
 598   // Iff the class loader (or mirror for anonymous classes) is alive the
 599   // Klass is considered alive.
 600   // The is_alive closure passed in depends on the Garbage Collector used.
 601   bool is_loader_alive(BoolObjectClosure* is_alive);
 602 
 603   static void clean_weak_klass_links(BoolObjectClosure* is_alive, bool clean_alive_klasses = true);
 604   static void clean_subklass_tree(BoolObjectClosure* is_alive) {
 605     clean_weak_klass_links(is_alive, false /* clean_alive_klasses */);
 606   }
 607 
 608   // GC specific object visitors
 609   //
 610   // Mark Sweep
 611   virtual int  oop_ms_adjust_pointers(oop obj) = 0;
 612 #if INCLUDE_ALL_GCS
 613   // Parallel Scavenge
 614   virtual void oop_ps_push_contents(  oop obj, PSPromotionManager* pm)   = 0;
 615   // Parallel Compact
 616   virtual void oop_pc_follow_contents(oop obj, ParCompactionManager* cm) = 0;
 617   virtual void oop_pc_update_pointers(oop obj, ParCompactionManager* cm) = 0;
 618 #endif
 619 
 620   // Iterators specialized to particular subtypes
 621   // of ExtendedOopClosure, to avoid closure virtual calls.
 622 #define Klass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix)                                           \
 623   virtual void oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure) = 0;                        \
 624   /* Iterates "closure" over all the oops in "obj" (of type "this") within "mr". */                     \
 625   virtual void oop_oop_iterate_bounded##nv_suffix(oop obj, OopClosureType* closure, MemRegion mr) = 0;
 626 
 627   ALL_OOP_OOP_ITERATE_CLOSURES_1(Klass_OOP_OOP_ITERATE_DECL)
 628   ALL_OOP_OOP_ITERATE_CLOSURES_2(Klass_OOP_OOP_ITERATE_DECL)
 629 
 630 #if INCLUDE_ALL_GCS
 631 #define Klass_OOP_OOP_ITERATE_DECL_BACKWARDS(OopClosureType, nv_suffix)                     \




 590   jlong last_biased_lock_bulk_revocation_time() { return _last_biased_lock_bulk_revocation_time; }
 591   void  set_last_biased_lock_bulk_revocation_time(jlong cur_time) { _last_biased_lock_bulk_revocation_time = cur_time; }
 592 
 593   TRACE_DEFINE_TRACE_ID_METHODS;
 594 
 595   // garbage collection support
 596   void oops_do(OopClosure* cl);
 597 
 598   // Iff the class loader (or mirror for anonymous classes) is alive the
 599   // Klass is considered alive.
 600   // The is_alive closure passed in depends on the Garbage Collector used.
 601   bool is_loader_alive(BoolObjectClosure* is_alive);
 602 
 603   static void clean_weak_klass_links(BoolObjectClosure* is_alive, bool clean_alive_klasses = true);
 604   static void clean_subklass_tree(BoolObjectClosure* is_alive) {
 605     clean_weak_klass_links(is_alive, false /* clean_alive_klasses */);
 606   }
 607 
 608   // GC specific object visitors
 609   //


 610 #if INCLUDE_ALL_GCS
 611   // Parallel Scavenge
 612   virtual void oop_ps_push_contents(  oop obj, PSPromotionManager* pm)   = 0;
 613   // Parallel Compact
 614   virtual void oop_pc_follow_contents(oop obj, ParCompactionManager* cm) = 0;
 615   virtual void oop_pc_update_pointers(oop obj, ParCompactionManager* cm) = 0;
 616 #endif
 617 
 618   // Iterators specialized to particular subtypes
 619   // of ExtendedOopClosure, to avoid closure virtual calls.
 620 #define Klass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix)                                           \
 621   virtual void oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure) = 0;                        \
 622   /* Iterates "closure" over all the oops in "obj" (of type "this") within "mr". */                     \
 623   virtual void oop_oop_iterate_bounded##nv_suffix(oop obj, OopClosureType* closure, MemRegion mr) = 0;
 624 
 625   ALL_OOP_OOP_ITERATE_CLOSURES_1(Klass_OOP_OOP_ITERATE_DECL)
 626   ALL_OOP_OOP_ITERATE_CLOSURES_2(Klass_OOP_OOP_ITERATE_DECL)
 627 
 628 #if INCLUDE_ALL_GCS
 629 #define Klass_OOP_OOP_ITERATE_DECL_BACKWARDS(OopClosureType, nv_suffix)                     \


< prev index next >