276 ((Generation*)this)->space_iterate(&blk); 277 return blk.is_obj; 278 } 279 280 class GenerationOopIterateClosure : public SpaceClosure { 281 public: 282 ExtendedOopClosure* _cl; 283 virtual void do_space(Space* s) { 284 s->oop_iterate(_cl); 285 } 286 GenerationOopIterateClosure(ExtendedOopClosure* cl) : 287 _cl(cl) {} 288 }; 289 290 void Generation::oop_iterate(ExtendedOopClosure* cl) { 291 GenerationOopIterateClosure blk(cl); 292 space_iterate(&blk); 293 } 294 295 void Generation::younger_refs_in_space_iterate(Space* sp, 296 OopsInGenClosure* cl) { 297 GenRemSet* rs = GenCollectedHeap::heap()->rem_set(); 298 rs->younger_refs_in_space_iterate(sp, cl); 299 } 300 301 class GenerationObjIterateClosure : public SpaceClosure { 302 private: 303 ObjectClosure* _cl; 304 public: 305 virtual void do_space(Space* s) { 306 s->object_iterate(_cl); 307 } 308 GenerationObjIterateClosure(ObjectClosure* cl) : _cl(cl) {} 309 }; 310 311 void Generation::object_iterate(ObjectClosure* cl) { 312 GenerationObjIterateClosure blk(cl); 313 space_iterate(&blk); 314 } 315 316 class GenerationSafeObjIterateClosure : public SpaceClosure { 317 private: 318 ObjectClosure* _cl; | 276 ((Generation*)this)->space_iterate(&blk); 277 return blk.is_obj; 278 } 279 280 class GenerationOopIterateClosure : public SpaceClosure { 281 public: 282 ExtendedOopClosure* _cl; 283 virtual void do_space(Space* s) { 284 s->oop_iterate(_cl); 285 } 286 GenerationOopIterateClosure(ExtendedOopClosure* cl) : 287 _cl(cl) {} 288 }; 289 290 void Generation::oop_iterate(ExtendedOopClosure* cl) { 291 GenerationOopIterateClosure blk(cl); 292 space_iterate(&blk); 293 } 294 295 void Generation::younger_refs_in_space_iterate(Space* sp, 296 OopsInGenClosure* cl, 297 uint n_threads) { 298 GenRemSet* rs = GenCollectedHeap::heap()->rem_set(); 299 rs->younger_refs_in_space_iterate(sp, cl, n_threads); 300 } 301 302 class GenerationObjIterateClosure : public SpaceClosure { 303 private: 304 ObjectClosure* _cl; 305 public: 306 virtual void do_space(Space* s) { 307 s->object_iterate(_cl); 308 } 309 GenerationObjIterateClosure(ObjectClosure* cl) : _cl(cl) {} 310 }; 311 312 void Generation::object_iterate(ObjectClosure* cl) { 313 GenerationObjIterateClosure blk(cl); 314 space_iterate(&blk); 315 } 316 317 class GenerationSafeObjIterateClosure : public SpaceClosure { 318 private: 319 ObjectClosure* _cl; |