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);
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;
185 friend class SurvivorGCAllocRegion;
186 friend class OldGCAllocRegion;
187 friend class G1Allocator;
188 friend class G1DefaultAllocator;
189 friend class G1ResManAllocator;
190
191 // Closures used in implementation.
192 template <G1Barrier barrier, G1Mark do_mark_object>
193 friend class G1ParCopyClosure;
194 friend class G1IsAliveClosure;
195 friend class G1EvacuateFollowersClosure;
|
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;
185 friend class SurvivorGCAllocRegion;
186 friend class OldGCAllocRegion;
187 friend class G1Allocator;
188 friend class G1DefaultAllocator;
189 friend class G1ResManAllocator;
190
191 // Closures used in implementation.
192 template <G1Barrier barrier, G1Mark do_mark_object>
193 friend class G1ParCopyClosure;
194 friend class G1IsAliveClosure;
195 friend class G1EvacuateFollowersClosure;
|