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_BACKWARDS_DECL)
157 ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_OOP_ITERATE_BACKWARDS_DECL)
158 #endif // INCLUDE_ALL_GCS
159 };
160
161 #endif // SHARE_VM_OOPS_INSTANCEMIRRORKLASS_HPP
|