< prev index next >

src/share/vm/oops/objArrayKlass.hpp

Print this page




  88   // Returns the array class with this class as element type.
  89   virtual Klass* array_klass_impl(bool or_null, TRAPS);
  90 
  91  public:
  92   // Casting from Klass*
  93   static ObjArrayKlass* cast(Klass* k) {
  94     assert(k->oop_is_objArray(), "cast to ObjArrayKlass");
  95     return (ObjArrayKlass*) k;
  96   }
  97 
  98   // Sizing
  99   static int header_size()                { return sizeof(ObjArrayKlass)/HeapWordSize; }
 100   int size() const                        { return ArrayKlass::static_size(header_size()); }
 101 
 102   // Initialization (virtual from Klass)
 103   void initialize(TRAPS);
 104 
 105   // GC specific object visitors
 106   //
 107   // Mark Sweep
 108   void oop_ms_follow_contents(oop obj);
 109   int  oop_ms_adjust_pointers(oop obj);
 110 #if INCLUDE_ALL_GCS
 111   // Parallel Scavenge
 112   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
 113   // Parallel Compact
 114   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
 115   void oop_pc_update_pointers(oop obj);
 116 #endif
 117 
 118   // Oop fields (and metadata) iterators
 119   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 120   //  [nv = false] Use virtual calls to do_oop.
 121   //
 122   // The ObjArrayKlass iterators also visits the Object's klass.
 123 
 124  private:
 125 
 126   // Iterate over oop elements and metadata.
 127   template <bool nv, typename OopClosureType>
 128   inline int oop_oop_iterate(oop obj, OopClosureType* closure);




  88   // Returns the array class with this class as element type.
  89   virtual Klass* array_klass_impl(bool or_null, TRAPS);
  90 
  91  public:
  92   // Casting from Klass*
  93   static ObjArrayKlass* cast(Klass* k) {
  94     assert(k->oop_is_objArray(), "cast to ObjArrayKlass");
  95     return (ObjArrayKlass*) k;
  96   }
  97 
  98   // Sizing
  99   static int header_size()                { return sizeof(ObjArrayKlass)/HeapWordSize; }
 100   int size() const                        { return ArrayKlass::static_size(header_size()); }
 101 
 102   // Initialization (virtual from Klass)
 103   void initialize(TRAPS);
 104 
 105   // GC specific object visitors
 106   //
 107   // Mark Sweep

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


< prev index next >