< prev index next >

src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

Print this page




2450   }
2451 }
2452 #endif
2453 
2454 // Iteration functions.
2455 
2456 // Applies an ExtendedOopClosure onto all references of objects within a HeapRegion.
2457 
2458 class IterateOopClosureRegionClosure: public HeapRegionClosure {
2459   ExtendedOopClosure* _cl;
2460 public:
2461   IterateOopClosureRegionClosure(ExtendedOopClosure* cl) : _cl(cl) {}
2462   bool doHeapRegion(HeapRegion* r) {
2463     if (!r->is_continues_humongous()) {
2464       r->oop_iterate(_cl);
2465     }
2466     return false;
2467   }
2468 };
2469 
2470 void G1CollectedHeap::oop_iterate(ExtendedOopClosure* cl) {
2471   IterateOopClosureRegionClosure blk(cl);
2472   heap_region_iterate(&blk);
2473 }
2474 
2475 // Iterates an ObjectClosure over all objects within a HeapRegion.
2476 
2477 class IterateObjectClosureRegionClosure: public HeapRegionClosure {
2478   ObjectClosure* _cl;
2479 public:
2480   IterateObjectClosureRegionClosure(ObjectClosure* cl) : _cl(cl) {}
2481   bool doHeapRegion(HeapRegion* r) {
2482     if (!r->is_continues_humongous()) {
2483       r->object_iterate(_cl);
2484     }
2485     return false;
2486   }
2487 };
2488 
2489 void G1CollectedHeap::object_iterate(ObjectClosure* cl) {
2490   IterateObjectClosureRegionClosure blk(cl);
2491   heap_region_iterate(&blk);
2492 }
2493 
2494 void G1CollectedHeap::heap_region_iterate(HeapRegionClosure* cl) const {




2450   }
2451 }
2452 #endif
2453 
2454 // Iteration functions.
2455 
2456 // Applies an ExtendedOopClosure onto all references of objects within a HeapRegion.
2457 
2458 class IterateOopClosureRegionClosure: public HeapRegionClosure {
2459   ExtendedOopClosure* _cl;
2460 public:
2461   IterateOopClosureRegionClosure(ExtendedOopClosure* cl) : _cl(cl) {}
2462   bool doHeapRegion(HeapRegion* r) {
2463     if (!r->is_continues_humongous()) {
2464       r->oop_iterate(_cl);
2465     }
2466     return false;
2467   }
2468 };
2469 





2470 // Iterates an ObjectClosure over all objects within a HeapRegion.
2471 
2472 class IterateObjectClosureRegionClosure: public HeapRegionClosure {
2473   ObjectClosure* _cl;
2474 public:
2475   IterateObjectClosureRegionClosure(ObjectClosure* cl) : _cl(cl) {}
2476   bool doHeapRegion(HeapRegion* r) {
2477     if (!r->is_continues_humongous()) {
2478       r->object_iterate(_cl);
2479     }
2480     return false;
2481   }
2482 };
2483 
2484 void G1CollectedHeap::object_iterate(ObjectClosure* cl) {
2485   IterateObjectClosureRegionClosure blk(cl);
2486   heap_region_iterate(&blk);
2487 }
2488 
2489 void G1CollectedHeap::heap_region_iterate(HeapRegionClosure* cl) const {


< prev index next >