90 class G1PrepareCompactClosure : public HeapRegionClosure { |
90 class G1PrepareCompactClosure : public HeapRegionClosure { |
91 protected: |
91 protected: |
92 G1CollectedHeap* _g1h; |
92 G1CollectedHeap* _g1h; |
93 ModRefBarrierSet* _mrbs; |
93 ModRefBarrierSet* _mrbs; |
94 CompactPoint _cp; |
94 CompactPoint _cp; |
95 HeapRegionSetCount _humongous_regions_removed; |
95 uint _humongous_regions_removed; |
96 |
96 |
97 virtual void prepare_for_compaction(HeapRegion* hr, HeapWord* end); |
97 virtual void prepare_for_compaction(HeapRegion* hr, HeapWord* end); |
98 void prepare_for_compaction_work(CompactPoint* cp, HeapRegion* hr, HeapWord* end); |
98 void prepare_for_compaction_work(CompactPoint* cp, HeapRegion* hr, HeapWord* end); |
99 void free_humongous_region(HeapRegion* hr); |
99 void free_humongous_region(HeapRegion* hr); |
100 bool is_cp_initialized() const { return _cp.space != NULL; } |
100 bool is_cp_initialized() const { return _cp.space != NULL; } |
101 |
101 |
102 public: |
102 public: |
103 G1PrepareCompactClosure() : |
103 G1PrepareCompactClosure() : |
104 _g1h(G1CollectedHeap::heap()), |
104 _g1h(G1CollectedHeap::heap()), |
105 _mrbs(_g1h->g1_barrier_set()), |
105 _mrbs(_g1h->g1_barrier_set()), |
106 _humongous_regions_removed() { } |
106 _humongous_regions_removed(0) { } |
107 |
107 |
108 void update_sets(); |
108 void update_sets(); |
109 bool doHeapRegion(HeapRegion* hr); |
109 bool doHeapRegion(HeapRegion* hr); |
110 }; |
110 }; |
111 |
111 |