src/share/vm/oops/oop.inline.hpp
Print this page
rev 6796 : [mq]: templateOopIterate
rev 6799 : [mq]: latestChanges
rev 6800 : [mq]: replaceTemplateDispatchWithMacroDispatch
rev 6801 : imported patch defaultToTrue
@@ -24,12 +24,10 @@
#ifndef SHARE_VM_OOPS_OOP_INLINE_HPP
#define SHARE_VM_OOPS_OOP_INLINE_HPP
#include "gc_implementation/shared/ageTable.hpp"
-#include "gc_implementation/shared/markSweep.inline.hpp"
-#include "gc_interface/collectedHeap.inline.hpp"
#include "memory/barrierSet.inline.hpp"
#include "memory/cardTableModRefBS.hpp"
#include "memory/genCollectedHeap.hpp"
#include "memory/generation.hpp"
#include "memory/specialized_oop_closures.hpp"
@@ -689,22 +687,26 @@
int s = klass()->oop_adjust_pointers(this);
assert(s == check_size, "should be the same");
return s;
}
-#define OOP_ITERATE_DEFN(OopClosureType, nv_suffix) \
- \
-inline int oopDesc::oop_iterate(OopClosureType* blk) { \
- SpecializationStats::record_call(); \
- return klass()->oop_oop_iterate##nv_suffix(this, blk); \
-} \
- \
-inline int oopDesc::oop_iterate(OopClosureType* blk, MemRegion mr) { \
- SpecializationStats::record_call(); \
- return klass()->oop_oop_iterate##nv_suffix##_m(this, blk, mr); \
+template <bool nv, typename OopClosureType>
+inline int oopDesc::oop_iterate(OopClosureType* blk) {
+ CONCRETE_KLASS_DO_AND_RETURN(klass(), oop_oop_iterate<nv>(this,blk));
}
+template <bool nv, typename OopClosureType>
+inline int oopDesc::oop_iterate(OopClosureType* blk, MemRegion mr) {
+ CONCRETE_KLASS_DO_AND_RETURN(klass(), oop_oop_iterate_m<nv>(this,blk,mr));
+}
+
+#if INCLUDE_ALL_GCS
+template <bool nv, typename OopClosureType>
+inline int oopDesc::oop_iterate_backwards(OopClosureType* blk) {
+ CONCRETE_KLASS_DO_AND_RETURN(klass(), oop_oop_iterate_backwards<nv>(this, blk));
+}
+#endif // INCLUDE_ALL_GCS
inline int oopDesc::oop_iterate_no_header(OopClosure* blk) {
// The NoHeaderExtendedOopClosure wraps the OopClosure and proxies all
// the do_oop calls, but turns off all other features in ExtendedOopClosure.
NoHeaderExtendedOopClosure cl(blk);
@@ -714,21 +716,6 @@
inline int oopDesc::oop_iterate_no_header(OopClosure* blk, MemRegion mr) {
NoHeaderExtendedOopClosure cl(blk);
return oop_iterate(&cl, mr);
}
-ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_ITERATE_DEFN)
-ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_ITERATE_DEFN)
-
-#if INCLUDE_ALL_GCS
-#define OOP_ITERATE_BACKWARDS_DEFN(OopClosureType, nv_suffix) \
- \
-inline int oopDesc::oop_iterate_backwards(OopClosureType* blk) { \
- SpecializationStats::record_call(); \
- return klass()->oop_oop_iterate_backwards##nv_suffix(this, blk); \
-}
-
-ALL_OOP_OOP_ITERATE_CLOSURES_1(OOP_ITERATE_BACKWARDS_DEFN)
-ALL_OOP_OOP_ITERATE_CLOSURES_2(OOP_ITERATE_BACKWARDS_DEFN)
-#endif // INCLUDE_ALL_GCS
-
#endif // SHARE_VM_OOPS_OOP_INLINE_HPP