< prev index next >

src/hotspot/share/gc/shared/generation.cpp

Print this page




 272                                                uint n_threads) {
 273   CardTableRS* rs = GenCollectedHeap::heap()->rem_set();
 274   rs->younger_refs_in_space_iterate(sp, cl, n_threads);
 275 }
 276 
 277 class GenerationObjIterateClosure : public SpaceClosure {
 278  private:
 279   ObjectClosure* _cl;
 280  public:
 281   virtual void do_space(Space* s) {
 282     s->object_iterate(_cl);
 283   }
 284   GenerationObjIterateClosure(ObjectClosure* cl) : _cl(cl) {}
 285 };
 286 
 287 void Generation::object_iterate(ObjectClosure* cl) {
 288   GenerationObjIterateClosure blk(cl);
 289   space_iterate(&blk);
 290 }
 291 
 292 class GenerationSafeObjIterateClosure : public SpaceClosure {
 293  private:
 294   ObjectClosure* _cl;
 295  public:
 296   virtual void do_space(Space* s) {
 297     s->safe_object_iterate(_cl);
 298   }
 299   GenerationSafeObjIterateClosure(ObjectClosure* cl) : _cl(cl) {}
 300 };
 301 
 302 void Generation::safe_object_iterate(ObjectClosure* cl) {
 303   GenerationSafeObjIterateClosure blk(cl);
 304   space_iterate(&blk);
 305 }
 306 
 307 #if INCLUDE_SERIALGC
 308 
 309 void Generation::prepare_for_compaction(CompactPoint* cp) {
 310   // Generic implementation, can be specialized
 311   CompactibleSpace* space = first_compaction_space();
 312   while (space != NULL) {
 313     space->prepare_for_compaction(cp);
 314     space = space->next_compaction_space();
 315   }
 316 }
 317 
 318 class AdjustPointersClosure: public SpaceClosure {
 319  public:
 320   void do_space(Space* sp) {
 321     sp->adjust_pointers();
 322   }
 323 };
 324 
 325 void Generation::adjust_pointers() {
 326   // Note that this is done over all spaces, not just the compactible


 272                                                uint n_threads) {
 273   CardTableRS* rs = GenCollectedHeap::heap()->rem_set();
 274   rs->younger_refs_in_space_iterate(sp, cl, n_threads);
 275 }
 276 
 277 class GenerationObjIterateClosure : public SpaceClosure {
 278  private:
 279   ObjectClosure* _cl;
 280  public:
 281   virtual void do_space(Space* s) {
 282     s->object_iterate(_cl);
 283   }
 284   GenerationObjIterateClosure(ObjectClosure* cl) : _cl(cl) {}
 285 };
 286 
 287 void Generation::object_iterate(ObjectClosure* cl) {
 288   GenerationObjIterateClosure blk(cl);
 289   space_iterate(&blk);
 290 }
 291 















 292 #if INCLUDE_SERIALGC
 293 
 294 void Generation::prepare_for_compaction(CompactPoint* cp) {
 295   // Generic implementation, can be specialized
 296   CompactibleSpace* space = first_compaction_space();
 297   while (space != NULL) {
 298     space->prepare_for_compaction(cp);
 299     space = space->next_compaction_space();
 300   }
 301 }
 302 
 303 class AdjustPointersClosure: public SpaceClosure {
 304  public:
 305   void do_space(Space* sp) {
 306     sp->adjust_pointers();
 307   }
 308 };
 309 
 310 void Generation::adjust_pointers() {
 311   // Note that this is done over all spaces, not just the compactible
< prev index next >