< 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 >