< prev index next >

src/hotspot/share/oops/instanceKlass.inline.hpp

Print this page




 149     oop_oop_iterate_oop_maps_specialized_reverse<nv, narrowOop>(obj, closure);
 150   } else {
 151     oop_oop_iterate_oop_maps_specialized_reverse<nv, oop>(obj, closure);
 152   }
 153 }
 154 #endif
 155 
 156 template <bool nv, class OopClosureType>
 157 ALWAYSINLINE void InstanceKlass::oop_oop_iterate_oop_maps_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 158   if (UseCompressedOops) {
 159     oop_oop_iterate_oop_maps_specialized_bounded<nv, narrowOop>(obj, closure, mr);
 160   } else {
 161     oop_oop_iterate_oop_maps_specialized_bounded<nv, oop>(obj, closure, mr);
 162   }
 163 }
 164 
 165 template <bool nv, class OopClosureType>
 166 ALWAYSINLINE int InstanceKlass::oop_oop_iterate(oop obj, OopClosureType* closure) {
 167   if (Devirtualizer<nv>::do_metadata(closure)) {
 168     Devirtualizer<nv>::do_klass(closure, this);
 169     if (get_vcc_klass() != NULL) {
 170       Devirtualizer<nv>::do_klass(closure, get_vcc_klass());
 171     }
 172   }
 173 
 174   oop_oop_iterate_oop_maps<nv>(obj, closure);
 175 
 176   return size_helper();
 177 }
 178 
 179 #if INCLUDE_ALL_GCS
 180 template <bool nv, class OopClosureType>
 181 ALWAYSINLINE int InstanceKlass::oop_oop_iterate_reverse(oop obj, OopClosureType* closure) {
 182   assert(!Devirtualizer<nv>::do_metadata(closure),
 183       "Code to handle metadata is not implemented");
 184 
 185   oop_oop_iterate_oop_maps_reverse<nv>(obj, closure);
 186 
 187   return size_helper();
 188 }
 189 #endif
 190 
 191 template <bool nv, class OopClosureType>
 192 ALWAYSINLINE int InstanceKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 193   if (Devirtualizer<nv>::do_metadata(closure)) {
 194     if (mr.contains(obj)) {
 195       Devirtualizer<nv>::do_klass(closure, this);
 196       if (get_vcc_klass() != NULL) {
 197         Devirtualizer<nv>::do_klass(closure, get_vcc_klass());
 198       }
 199     }
 200   }
 201 
 202   oop_oop_iterate_oop_maps_bounded<nv>(obj, closure, mr);
 203 
 204   return size_helper();
 205 }
 206 
 207 #define ALL_INSTANCE_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix)  \
 208   OOP_OOP_ITERATE_DEFN(          InstanceKlass, OopClosureType, nv_suffix)  \
 209   OOP_OOP_ITERATE_DEFN_BOUNDED(  InstanceKlass, OopClosureType, nv_suffix)  \
 210   OOP_OOP_ITERATE_DEFN_BACKWARDS(InstanceKlass, OopClosureType, nv_suffix)
 211 
 212 #endif // SHARE_VM_OOPS_INSTANCEKLASS_INLINE_HPP


 149     oop_oop_iterate_oop_maps_specialized_reverse<nv, narrowOop>(obj, closure);
 150   } else {
 151     oop_oop_iterate_oop_maps_specialized_reverse<nv, oop>(obj, closure);
 152   }
 153 }
 154 #endif
 155 
 156 template <bool nv, class OopClosureType>
 157 ALWAYSINLINE void InstanceKlass::oop_oop_iterate_oop_maps_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 158   if (UseCompressedOops) {
 159     oop_oop_iterate_oop_maps_specialized_bounded<nv, narrowOop>(obj, closure, mr);
 160   } else {
 161     oop_oop_iterate_oop_maps_specialized_bounded<nv, oop>(obj, closure, mr);
 162   }
 163 }
 164 
 165 template <bool nv, class OopClosureType>
 166 ALWAYSINLINE int InstanceKlass::oop_oop_iterate(oop obj, OopClosureType* closure) {
 167   if (Devirtualizer<nv>::do_metadata(closure)) {
 168     Devirtualizer<nv>::do_klass(closure, this);



 169   }
 170 
 171   oop_oop_iterate_oop_maps<nv>(obj, closure);
 172 
 173   return size_helper();
 174 }
 175 
 176 #if INCLUDE_ALL_GCS
 177 template <bool nv, class OopClosureType>
 178 ALWAYSINLINE int InstanceKlass::oop_oop_iterate_reverse(oop obj, OopClosureType* closure) {
 179   assert(!Devirtualizer<nv>::do_metadata(closure),
 180       "Code to handle metadata is not implemented");
 181 
 182   oop_oop_iterate_oop_maps_reverse<nv>(obj, closure);
 183 
 184   return size_helper();
 185 }
 186 #endif
 187 
 188 template <bool nv, class OopClosureType>
 189 ALWAYSINLINE int InstanceKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) {
 190   if (Devirtualizer<nv>::do_metadata(closure)) {
 191     if (mr.contains(obj)) {
 192       Devirtualizer<nv>::do_klass(closure, this);



 193     }
 194   }
 195 
 196   oop_oop_iterate_oop_maps_bounded<nv>(obj, closure, mr);
 197 
 198   return size_helper();
 199 }
 200 
 201 #define ALL_INSTANCE_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix)  \
 202   OOP_OOP_ITERATE_DEFN(          InstanceKlass, OopClosureType, nv_suffix)  \
 203   OOP_OOP_ITERATE_DEFN_BOUNDED(  InstanceKlass, OopClosureType, nv_suffix)  \
 204   OOP_OOP_ITERATE_DEFN_BACKWARDS(InstanceKlass, OopClosureType, nv_suffix)
 205 
 206 #endif // SHARE_VM_OOPS_INSTANCEKLASS_INLINE_HPP
< prev index next >