src/share/vm/memory/generation.cpp

changeset 952
e9be0e04635a
parent 706
818a18cd69a8
child 1014
0fbdb4381b99
     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();

mercurial