< prev index next >

src/share/vm/oops/objArrayKlass.hpp

Print this page




  84                                   T* dst, int length, TRAPS);
  85  protected:
  86   // Returns the ObjArrayKlass for n'th dimension.
  87   virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
  88 
  89   // Returns the array class with this class as element type.
  90   virtual Klass* array_klass_impl(bool or_null, TRAPS);
  91 
  92  public:
  93 
  94   static ObjArrayKlass* cast(Klass* k) {
  95     return const_cast<ObjArrayKlass*>(cast(const_cast<const Klass*>(k)));
  96   }
  97 
  98   static const ObjArrayKlass* cast(const Klass* k) {
  99     assert(k->is_objArray_klass(), "cast to ObjArrayKlass");
 100     return static_cast<const ObjArrayKlass*>(k);
 101   }
 102 
 103   // Sizing
 104   static int header_size()                { return sizeof(ObjArrayKlass)/HeapWordSize; }
 105   int size() const                        { return ArrayKlass::static_size(header_size()); }
 106 
 107   // Initialization (virtual from Klass)
 108   void initialize(TRAPS);
 109 
 110   // GC specific object visitors
 111   //
 112   // Mark Sweep
 113   int  oop_ms_adjust_pointers(oop obj);
 114 #if INCLUDE_ALL_GCS
 115   // Parallel Scavenge
 116   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
 117   // Parallel Compact
 118   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
 119   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
 120 #endif
 121 
 122   // Oop fields (and metadata) iterators
 123   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 124   //  [nv = false] Use virtual calls to do_oop.




  84                                   T* dst, int length, TRAPS);
  85  protected:
  86   // Returns the ObjArrayKlass for n'th dimension.
  87   virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
  88 
  89   // Returns the array class with this class as element type.
  90   virtual Klass* array_klass_impl(bool or_null, TRAPS);
  91 
  92  public:
  93 
  94   static ObjArrayKlass* cast(Klass* k) {
  95     return const_cast<ObjArrayKlass*>(cast(const_cast<const Klass*>(k)));
  96   }
  97 
  98   static const ObjArrayKlass* cast(const Klass* k) {
  99     assert(k->is_objArray_klass(), "cast to ObjArrayKlass");
 100     return static_cast<const ObjArrayKlass*>(k);
 101   }
 102 
 103   // Sizing
 104   static int header_size()                { return sizeof(ObjArrayKlass)/wordSize; }
 105   int size() const                        { return ArrayKlass::static_size(header_size()); }
 106 
 107   // Initialization (virtual from Klass)
 108   void initialize(TRAPS);
 109 
 110   // GC specific object visitors
 111   //
 112   // Mark Sweep
 113   int  oop_ms_adjust_pointers(oop obj);
 114 #if INCLUDE_ALL_GCS
 115   // Parallel Scavenge
 116   void oop_ps_push_contents(  oop obj, PSPromotionManager* pm);
 117   // Parallel Compact
 118   void oop_pc_follow_contents(oop obj, ParCompactionManager* cm);
 119   void oop_pc_update_pointers(oop obj, ParCompactionManager* cm);
 120 #endif
 121 
 122   // Oop fields (and metadata) iterators
 123   //  [nv = true]  Use non-virtual calls to do_oop_nv.
 124   //  [nv = false] Use virtual calls to do_oop.


< prev index next >