173 } 174 #endif 175 176 template <bool nv, class OopClosureType> 177 INLINE int InstanceKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) { 178 if (Devirtualizer<nv>::do_metadata(closure)) { 179 if (mr.contains(obj)) { 180 Devirtualizer<nv>::do_klass(closure, this); 181 } 182 } 183 184 oop_oop_iterate_oop_maps_bounded<nv>(obj, closure, mr); 185 186 return size_helper(); 187 } 188 189 #undef INLINE 190 191 #define ALL_INSTANCE_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ 192 OOP_OOP_ITERATE_DEFN( InstanceKlass, OopClosureType, nv_suffix) \ 193 OOP_OOP_ITERATE_DEFN_m( InstanceKlass, OopClosureType, nv_suffix) \ 194 OOP_OOP_ITERATE_BACKWARDS_DEFN(InstanceKlass, OopClosureType, nv_suffix) 195 196 #endif // SHARE_VM_OOPS_INSTANCEKLASS_INLINE_HPP | 173 } 174 #endif 175 176 template <bool nv, class OopClosureType> 177 INLINE int InstanceKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) { 178 if (Devirtualizer<nv>::do_metadata(closure)) { 179 if (mr.contains(obj)) { 180 Devirtualizer<nv>::do_klass(closure, this); 181 } 182 } 183 184 oop_oop_iterate_oop_maps_bounded<nv>(obj, closure, mr); 185 186 return size_helper(); 187 } 188 189 #undef INLINE 190 191 #define ALL_INSTANCE_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ 192 OOP_OOP_ITERATE_DEFN( InstanceKlass, OopClosureType, nv_suffix) \ 193 OOP_OOP_ITERATE_DEFN_BOUNDED( InstanceKlass, OopClosureType, nv_suffix) \ 194 OOP_OOP_ITERATE_DEFN_BACKWARDS(InstanceKlass, OopClosureType, nv_suffix) 195 196 #endif // SHARE_VM_OOPS_INSTANCEKLASS_INLINE_HPP |