132 #endif 133 134 135 // Bounded range iteration 136 // Iterate over the oop fields and metadata. 137 template <bool nv, class OopClosureType> 138 inline int oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr); 139 140 // Iterate over the static fields. 141 template <bool nv, class OopClosureType> 142 inline void oop_oop_iterate_statics_bounded(oop obj, OopClosureType* closure, MemRegion mr); 143 144 // Iterate over the static fields. 145 // Specialized for [T = oop] or [T = narrowOop]. 146 template <bool nv, typename T, class OopClosureType> 147 inline void oop_oop_iterate_statics_specialized_bounded(oop obj, OopClosureType* closure, MemRegion mr); 148 149 150 public: 151 152 #define InstanceMirrorKlass_OOP_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \ 153 int oop_oop_iterate##nv_suffix(oop obj, OopClosureType* blk); \ 154 int oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* blk, MemRegion mr); 155 156 ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceMirrorKlass_OOP_OOP_ITERATE_DECL) 157 ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceMirrorKlass_OOP_OOP_ITERATE_DECL) 158 159 #if INCLUDE_ALL_GCS 160 #define InstanceMirrorKlass_OOP_OOP_ITERATE_BACKWARDS_DECL(OopClosureType, nv_suffix) \ 161 int oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* blk); 162 163 ALL_OOP_OOP_ITERATE_CLOSURES_1(InstanceMirrorKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) 164 ALL_OOP_OOP_ITERATE_CLOSURES_2(InstanceMirrorKlass_OOP_OOP_ITERATE_BACKWARDS_DECL) 165 #endif // INCLUDE_ALL_GCS 166 }; 167 168 #endif // SHARE_VM_OOPS_INSTANCEMIRRORKLASS_HPP | 132 #endif 133 134 135 // Bounded range iteration 136 // Iterate over the oop fields and metadata. 137 template <bool nv, class OopClosureType> 138 inline int oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr); 139 140 // Iterate over the static fields. 141 template <bool nv, class OopClosureType> 142 inline void oop_oop_iterate_statics_bounded(oop obj, OopClosureType* closure, MemRegion mr); 143 144 // Iterate over the static fields. 145 // Specialized for [T = oop] or [T = narrowOop]. 146 template <bool nv, typename T, class OopClosureType> 147 inline void oop_oop_iterate_statics_specialized_bounded(oop obj, OopClosureType* closure, MemRegion mr); 148 149 150 public: 151 152 ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL) 153 ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL) 154 155 #if INCLUDE_ALL_GCS 156 ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_OOP_ITERATE_DECL_BACKWARDS) 157 ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_DECL_BACKWARDS) 158 #endif // INCLUDE_ALL_GCS 159 }; 160 161 #endif // SHARE_VM_OOPS_INSTANCEMIRRORKLASS_HPP |