145 }
146
147 HeapRegion* first_region() { return _head; }
148 HeapRegion* first_survivor_region() { return _survivor_head; }
149 HeapRegion* last_survivor_region() { return _survivor_tail; }
150
151 // debugging
152 bool check_list_well_formed();
153 bool check_list_empty(bool check_sample = true);
154 void print();
155 };
156
157 // The G1 STW is alive closure.
158 // An instance is embedded into the G1CH and used as the
159 // (optional) _is_alive_non_header closure in the STW
160 // reference processor. It is also extensively used during
161 // reference processing during STW evacuation pauses.
162 class G1STWIsAliveClosure: public BoolObjectClosure {
163 G1CollectedHeap* _g1;
164 public:
165 G1STWIsAliveClosure(G1CollectedHeap* g1) : _g1(g1) {}
166 bool do_object_b(oop p);
167 };
168
169 class RefineCardTableEntryClosure;
170
171 class G1RegionMappingChangedListener : public G1MappingChangedListener {
172 private:
173 void reset_from_card_cache(uint start_idx, size_t num_regions);
174 public:
175 virtual void on_commit(uint start_idx, size_t num_regions, bool zero_filled);
176 };
177
178 class G1CollectedHeap : public SharedHeap {
179 friend class VM_CollectForMetadataAllocation;
180 friend class VM_G1CollectForAllocation;
181 friend class VM_G1CollectFull;
182 friend class VM_G1IncCollectionPause;
183 friend class VMStructs;
184 friend class MutatorAllocRegion;
|
145 }
146
147 HeapRegion* first_region() { return _head; }
148 HeapRegion* first_survivor_region() { return _survivor_head; }
149 HeapRegion* last_survivor_region() { return _survivor_tail; }
150
151 // debugging
152 bool check_list_well_formed();
153 bool check_list_empty(bool check_sample = true);
154 void print();
155 };
156
157 // The G1 STW is alive closure.
158 // An instance is embedded into the G1CH and used as the
159 // (optional) _is_alive_non_header closure in the STW
160 // reference processor. It is also extensively used during
161 // reference processing during STW evacuation pauses.
162 class G1STWIsAliveClosure: public BoolObjectClosure {
163 G1CollectedHeap* _g1;
164 public:
165 G1STWIsAliveClosure() {}
166 G1STWIsAliveClosure(G1CollectedHeap* g1) : _g1(g1) {}
167 bool do_object_b(oop p);
168 };
169
170 class RefineCardTableEntryClosure;
171
172 class G1RegionMappingChangedListener : public G1MappingChangedListener {
173 private:
174 void reset_from_card_cache(uint start_idx, size_t num_regions);
175 public:
176 virtual void on_commit(uint start_idx, size_t num_regions, bool zero_filled);
177 };
178
179 class G1CollectedHeap : public SharedHeap {
180 friend class VM_CollectForMetadataAllocation;
181 friend class VM_G1CollectForAllocation;
182 friend class VM_G1CollectFull;
183 friend class VM_G1IncCollectionPause;
184 friend class VMStructs;
185 friend class MutatorAllocRegion;
|