< prev index next >

src/share/vm/oops/instanceMirrorKlass.hpp

Print this page
rev 8366 : 8080746: Refactor oop iteration macros to be more general
Reviewed-by:


 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
< prev index next >