< prev index next >

src/share/vm/oops/objArrayKlass.inline.hpp

Print this page




 136 template <bool nv, class OopClosureType>
 137 int ObjArrayKlass::oop_oop_iterate_range(oop obj, OopClosureType* closure, int start, int end) {
 138   assert(obj->is_array(), "obj must be array");
 139   objArrayOop a  = objArrayOop(obj);
 140 
 141   // Get size before changing pointers.
 142   // Don't call size() or oop_size() since that is a virtual call
 143   int size = a->object_size();
 144 
 145   if (UseCompressedOops) {
 146     oop_oop_iterate_range_specialized<nv, narrowOop>(a, closure, start, end);
 147   } else {
 148     oop_oop_iterate_range_specialized<nv, oop>(a, closure, start, end);
 149   }
 150 
 151   return size;
 152 }
 153 
 154 #define ALL_OBJ_ARRAY_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix)   \
 155   OOP_OOP_ITERATE_DEFN(             ObjArrayKlass, OopClosureType, nv_suffix) \
 156   OOP_OOP_ITERATE_DEFN_m(           ObjArrayKlass, OopClosureType, nv_suffix) \
 157   OOP_OOP_ITERATE_RANGE_DEFN(       ObjArrayKlass, OopClosureType, nv_suffix) \
 158   OOP_OOP_ITERATE_NO_BACKWARDS_DEFN(ObjArrayKlass, OopClosureType, nv_suffix)
 159 
 160 #endif // SHARE_VM_OOPS_OBJARRAYKLASS_INLINE_HPP


 136 template <bool nv, class OopClosureType>
 137 int ObjArrayKlass::oop_oop_iterate_range(oop obj, OopClosureType* closure, int start, int end) {
 138   assert(obj->is_array(), "obj must be array");
 139   objArrayOop a  = objArrayOop(obj);
 140 
 141   // Get size before changing pointers.
 142   // Don't call size() or oop_size() since that is a virtual call
 143   int size = a->object_size();
 144 
 145   if (UseCompressedOops) {
 146     oop_oop_iterate_range_specialized<nv, narrowOop>(a, closure, start, end);
 147   } else {
 148     oop_oop_iterate_range_specialized<nv, oop>(a, closure, start, end);
 149   }
 150 
 151   return size;
 152 }
 153 
 154 #define ALL_OBJ_ARRAY_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix)    \
 155   OOP_OOP_ITERATE_DEFN(             ObjArrayKlass, OopClosureType, nv_suffix)  \
 156   OOP_OOP_ITERATE_DEFN_BOUNDED(     ObjArrayKlass, OopClosureType, nv_suffix)  \
 157   OOP_OOP_ITERATE_DEFN_RANGE(       ObjArrayKlass, OopClosureType, nv_suffix)  \
 158   OOP_OOP_ITERATE_DEFN_NO_BACKWARDS(ObjArrayKlass, OopClosureType, nv_suffix)
 159 
 160 #endif // SHARE_VM_OOPS_OBJARRAYKLASS_INLINE_HPP
< prev index next >