hotspot/src/share/vm/memory/generation.cpp
changeset 1893 c82e388e17c5
parent 979 c9479f1e0a94
child 2105 347008ce7984
--- 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();