< prev index next >

src/share/vm/oops/typeArrayKlass.inline.hpp

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

*** 23,32 **** --- 23,34 ---- */ #ifndef SHARE_VM_OOPS_TYPEARRAYKLASS_INLINE_HPP #define SHARE_VM_OOPS_TYPEARRAYKLASS_INLINE_HPP + #include "oops/arrayKlass.hpp" + #include "oops/klass.hpp" #include "oops/oop.inline.hpp" #include "oops/typeArrayKlass.hpp" #include "oops/typeArrayOop.hpp" class ExtendedOopClosure;
*** 37,73 **** // Performance tweak: We skip iterating over the klass pointer since we // know that Universe::TypeArrayKlass never moves. return t->object_size(); } ! #define TypeArrayKlass_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ ! \ ! int TypeArrayKlass:: \ ! oop_oop_iterate##nv_suffix(oop obj, OopClosureType* closure) { \ ! return oop_oop_iterate_impl(obj, closure); \ } ! #if INCLUDE_ALL_GCS ! #define TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) \ ! \ ! int TypeArrayKlass:: \ ! oop_oop_iterate_backwards##nv_suffix(oop obj, OopClosureType* closure) { \ ! return oop_oop_iterate_impl(obj, closure); \ ! } ! #else ! #define TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) ! #endif ! ! ! #define TypeArrayKlass_OOP_OOP_ITERATE_DEFN_m(OopClosureType, nv_suffix) \ ! \ ! int TypeArrayKlass:: \ ! oop_oop_iterate##nv_suffix##_m(oop obj, OopClosureType* closure, MemRegion mr) { \ ! return oop_oop_iterate_impl(obj, closure); \ } #define ALL_TYPE_ARRAY_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ ! TypeArrayKlass_OOP_OOP_ITERATE_DEFN( OopClosureType, nv_suffix) \ ! TypeArrayKlass_OOP_OOP_ITERATE_DEFN_m( OopClosureType, nv_suffix) \ ! TypeArrayKlass_OOP_OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) #endif // SHARE_VM_OOPS_TYPEARRAYKLASS_INLINE_HPP --- 39,59 ---- // Performance tweak: We skip iterating over the klass pointer since we // know that Universe::TypeArrayKlass never moves. return t->object_size(); } ! template <bool nv, typename OopClosureType> ! int TypeArrayKlass::oop_oop_iterate(oop obj, OopClosureType* closure) { ! return oop_oop_iterate_impl(obj, closure); } ! template <bool nv, typename OopClosureType> ! int TypeArrayKlass::oop_oop_iterate_bounded(oop obj, OopClosureType* closure, MemRegion mr) { ! return oop_oop_iterate_impl(obj, closure); } #define ALL_TYPE_ARRAY_KLASS_OOP_OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \ ! OOP_OOP_ITERATE_DEFN( TypeArrayKlass, OopClosureType, nv_suffix) \ ! OOP_OOP_ITERATE_DEFN_m( TypeArrayKlass, OopClosureType, nv_suffix) \ ! OOP_OOP_ITERATE_NO_BACKWARDS_DEFN(TypeArrayKlass, OopClosureType, nv_suffix) #endif // SHARE_VM_OOPS_TYPEARRAYKLASS_INLINE_HPP
< prev index next >