1.1 --- a/src/share/vm/memory/generation.cpp Sat Dec 20 00:45:18 2008 -0800 1.2 +++ b/src/share/vm/memory/generation.cpp Tue Jan 06 07:05:05 2009 -0800 1.3 @@ -319,6 +319,21 @@ 1.4 space_iterate(&blk); 1.5 } 1.6 1.7 +class GenerationSafeObjIterateClosure : public SpaceClosure { 1.8 + private: 1.9 + ObjectClosure* _cl; 1.10 + public: 1.11 + virtual void do_space(Space* s) { 1.12 + s->safe_object_iterate(_cl); 1.13 + } 1.14 + GenerationSafeObjIterateClosure(ObjectClosure* cl) : _cl(cl) {} 1.15 +}; 1.16 + 1.17 +void Generation::safe_object_iterate(ObjectClosure* cl) { 1.18 + GenerationSafeObjIterateClosure blk(cl); 1.19 + space_iterate(&blk); 1.20 +} 1.21 + 1.22 void Generation::prepare_for_compaction(CompactPoint* cp) { 1.23 // Generic implementation, can be specialized 1.24 CompactibleSpace* space = first_compaction_space();