--- a/hotspot/src/share/vm/memory/generation.cpp Sat Dec 20 00:45:18 2008 -0800
+++ b/hotspot/src/share/vm/memory/generation.cpp Tue Jan 06 07:05:05 2009 -0800
@@ -319,6 +319,21 @@
space_iterate(&blk);
}
+class GenerationSafeObjIterateClosure : public SpaceClosure {
+ private:
+ ObjectClosure* _cl;
+ public:
+ virtual void do_space(Space* s) {
+ s->safe_object_iterate(_cl);
+ }
+ GenerationSafeObjIterateClosure(ObjectClosure* cl) : _cl(cl) {}
+};
+
+void Generation::safe_object_iterate(ObjectClosure* cl) {
+ GenerationSafeObjIterateClosure blk(cl);
+ space_iterate(&blk);
+}
+
void Generation::prepare_for_compaction(CompactPoint* cp) {
// Generic implementation, can be specialized
CompactibleSpace* space = first_compaction_space();