< prev index next >

src/hotspot/share/oops/typeArrayKlass.hpp

Print this page




  77 
  78  private:
  79   // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
  80   inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
  81 
  82  public:
  83   // Wraps oop_oop_iterate_impl to conform to macros.
  84   template <typename T, typename OopClosureType>
  85   inline void oop_oop_iterate(oop obj, OopClosureType* closure);
  86 
  87   // Wraps oop_oop_iterate_impl to conform to macros.
  88   template <typename T, typename OopClosureType>
  89   inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
  90 
  91   // Wraps oop_oop_iterate_impl to conform to macros.
  92   template <typename T, typename OopClosureType>
  93   inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure);
  94 
  95  protected:
  96   // Find n'th dimensional array
  97   virtual Klass* array_klass_impl(bool or_null, int n, TRAPS);
  98 
  99   // Returns the array class with this class as element type
 100   virtual Klass* array_klass_impl(bool or_null, TRAPS);
 101 
 102  public:
 103   static TypeArrayKlass* cast(Klass* k) {
 104     return const_cast<TypeArrayKlass*>(cast(const_cast<const Klass*>(k)));
 105   }
 106 
 107   static const TypeArrayKlass* cast(const Klass* k) {
 108     assert(k->is_typeArray_klass(), "cast to TypeArrayKlass");
 109     return static_cast<const TypeArrayKlass*>(k);
 110   }
 111 
 112   // Naming
 113   static const char* external_name(BasicType type);
 114 
 115   // Sizing
 116   static int header_size()  { return sizeof(TypeArrayKlass)/wordSize; }
 117   int size() const          { return ArrayKlass::static_size(header_size()); }
 118 
 119   // Initialization (virtual from Klass)
 120   void initialize(TRAPS);


  77 
  78  private:
  79   // The implementation used by all oop_oop_iterate functions in TypeArrayKlasses.
  80   inline void oop_oop_iterate_impl(oop obj, OopIterateClosure* closure);
  81 
  82  public:
  83   // Wraps oop_oop_iterate_impl to conform to macros.
  84   template <typename T, typename OopClosureType>
  85   inline void oop_oop_iterate(oop obj, OopClosureType* closure);
  86 
  87   // Wraps oop_oop_iterate_impl to conform to macros.
  88   template <typename T, typename OopClosureType>
  89   inline void oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr);
  90 
  91   // Wraps oop_oop_iterate_impl to conform to macros.
  92   template <typename T, typename OopClosureType>
  93   inline void oop_oop_iterate_reverse(oop obj, OopClosureType* closure);
  94 
  95  protected:
  96   // Find n'th dimensional array
  97   virtual Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, int n, TRAPS);
  98 
  99   // Returns the array class with this class as element type
 100   virtual Klass* array_klass_impl(ArrayStorageProperties storage_props, bool or_null, TRAPS);
 101 
 102  public:
 103   static TypeArrayKlass* cast(Klass* k) {
 104     return const_cast<TypeArrayKlass*>(cast(const_cast<const Klass*>(k)));
 105   }
 106 
 107   static const TypeArrayKlass* cast(const Klass* k) {
 108     assert(k->is_typeArray_klass(), "cast to TypeArrayKlass");
 109     return static_cast<const TypeArrayKlass*>(k);
 110   }
 111 
 112   // Naming
 113   static const char* external_name(BasicType type);
 114 
 115   // Sizing
 116   static int header_size()  { return sizeof(TypeArrayKlass)/wordSize; }
 117   int size() const          { return ArrayKlass::static_size(header_size()); }
 118 
 119   // Initialization (virtual from Klass)
 120   void initialize(TRAPS);
< prev index next >