src/share/vm/memory/space.hpp
Print this page
rev 6796 : [mq]: templateOopIterate
@@ -556,15 +556,12 @@
}
#if INCLUDE_ALL_GCS
// In support of parallel oop_iterate.
- #define ContigSpace_PAR_OOP_ITERATE_DECL(OopClosureType, nv_suffix) \
+ template <bool nv, typename OopClosureType>
void par_oop_iterate(MemRegion mr, OopClosureType* blk);
-
- ALL_PAR_OOP_ITERATE_CLOSURES(ContigSpace_PAR_OOP_ITERATE_DECL)
- #undef ContigSpace_PAR_OOP_ITERATE_DECL
#endif // INCLUDE_ALL_GCS
// Compaction support
virtual void reset_after_compaction() {
assert(compaction_top() >= bottom() && compaction_top() <= end(), "should point inside space");
@@ -583,15 +580,12 @@
// save_marks and is required to denote the head of an object.
// Fields in objects allocated by applications of the closure
// *are* included in the iteration.
// Updates _saved_mark_word to point to just after the last object
// iterated over.
-#define ContigSpace_OOP_SINCE_SAVE_MARKS_DECL(OopClosureType, nv_suffix) \
- void oop_since_save_marks_iterate##nv_suffix(OopClosureType* blk);
-
- ALL_SINCE_SAVE_MARKS_CLOSURES(ContigSpace_OOP_SINCE_SAVE_MARKS_DECL)
-#undef ContigSpace_OOP_SINCE_SAVE_MARKS_DECL
+ template <bool nv, typename OopClosureType>
+ void cspace_oop_since_save_marks_iterate(OopClosureType* blk);
// Same as object_iterate, but starting from "mark", which is required
// to denote the start of an object. Objects allocated by
// applications of the closure *are* included in the iteration.
virtual void object_iterate_from(WaterMark mark, ObjectClosure* blk);