< prev index next >

src/share/vm/oops/objArrayKlass.hpp

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


  95  public:
  96 
  97   static ObjArrayKlass* cast(Klass* k) {
  98     return const_cast<ObjArrayKlass*>(cast(const_cast<const Klass*>(k)));
  99   }
 100 
 101   static const ObjArrayKlass* cast(const Klass* k) {
 102     assert(k->is_objArray_klass(), "cast to ObjArrayKlass");
 103     return static_cast<const ObjArrayKlass*>(k);
 104   }
 105 
 106   // Sizing
 107   static int header_size()                { return sizeof(ObjArrayKlass)/wordSize; }
 108   int size() const                        { return ArrayKlass::static_size(header_size()); }
 109 
 110   // Initialization (virtual from Klass)
 111   void initialize(TRAPS);
 112 
 113   // GC specific object visitors
 114   //
 115   // Mark Sweep
 116   int  oop_ms_adjust_pointers(oop obj);
 117 #if INCLUDE_ALL_GCS
 118   // Parallel Scavenge
 119   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
 120   // Parallel Compact
 121   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
 122   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
 123 #endif
 124 
 125   // Oop fields (and metadata) iterators
 126   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 127   //  [nv = false] Use virtual calls to do_oop.
 128   //
 129   // The ObjArrayKlass iterators also visits the Object's klass.
 130 
 131  private:
 132 
 133   // Iterate over oop elements and metadata.
 134   template <bool nv, typename OopClosureType>
 135   inline void oop_oop_iterate(oop obj, OopClosureType* closure);
 136 




  95  public:
  96 
  97   static ObjArrayKlass* cast(Klass* k) {
  98     return const_cast<ObjArrayKlass*>(cast(const_cast<const Klass*>(k)));
  99   }
 100 
 101   static const ObjArrayKlass* cast(const Klass* k) {
 102     assert(k->is_objArray_klass(), "cast to ObjArrayKlass");
 103     return static_cast<const ObjArrayKlass*>(k);
 104   }
 105 
 106   // Sizing
 107   static int header_size()                { return sizeof(ObjArrayKlass)/wordSize; }
 108   int size() const                        { return ArrayKlass::static_size(header_size()); }
 109 
 110   // Initialization (virtual from Klass)
 111   void initialize(TRAPS);
 112 
 113   // GC specific object visitors
 114   //


 115 #if INCLUDE_ALL_GCS
 116   // Parallel Scavenge
 117   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
 118   // Parallel Compact
 119   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
 120   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
 121 #endif
 122 
 123   // Oop fields (and metadata) iterators
 124   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 125   //  [nv = false] Use virtual calls to do_oop.
 126   //
 127   // The ObjArrayKlass iterators also visits the Object's klass.
 128 
 129  private:
 130 
 131   // Iterate over oop elements and metadata.
 132   template <bool nv, typename OopClosureType>
 133   inline void oop_oop_iterate(oop obj, OopClosureType* closure);
 134 


< prev index next >