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 |