233 HeapRegion* _hr;
234
235 enum SomeAdditionalPrivateConstants {
236 InitialCapacity = 16
237 };
238
239 void expand();
240
241 bool _expanded;
242
243 bool expanded() { return _expanded; }
244 void set_expanded(bool b) { _expanded = b; }
245
246 SparsePRT* _next_expanded;
247
248 SparsePRT* next_expanded() { return _next_expanded; }
249 void set_next_expanded(SparsePRT* nxt) { _next_expanded = nxt; }
250
251 bool should_be_on_expanded_list();
252
253 static SparsePRT* _head_expanded_list;
254
255 public:
256 SparsePRT(HeapRegion* hr);
257
258 ~SparsePRT();
259
260 size_t occupied() const { return _next->occupied_cards(); }
261 size_t mem_size() const;
262
263 // Attempts to ensure that the given card_index in the given region is in
264 // the sparse table. If successful (because the card was already
265 // present, or because it was successfully added) returns "true".
266 // Otherwise, returns "false" to indicate that the addition would
267 // overflow the entry for the region. The caller must transfer these
268 // entries to a larger-capacity representation.
269 bool add_card(RegionIdx_t region_id, CardIdx_t card_index);
270
271 // Return the pointer to the entry associated with the given region.
272 SparsePRTEntry* get_entry(RegionIdx_t region_ind);
273
|
233 HeapRegion* _hr;
234
235 enum SomeAdditionalPrivateConstants {
236 InitialCapacity = 16
237 };
238
239 void expand();
240
241 bool _expanded;
242
243 bool expanded() { return _expanded; }
244 void set_expanded(bool b) { _expanded = b; }
245
246 SparsePRT* _next_expanded;
247
248 SparsePRT* next_expanded() { return _next_expanded; }
249 void set_next_expanded(SparsePRT* nxt) { _next_expanded = nxt; }
250
251 bool should_be_on_expanded_list();
252
253 static SparsePRT* volatile _head_expanded_list;
254
255 public:
256 SparsePRT(HeapRegion* hr);
257
258 ~SparsePRT();
259
260 size_t occupied() const { return _next->occupied_cards(); }
261 size_t mem_size() const;
262
263 // Attempts to ensure that the given card_index in the given region is in
264 // the sparse table. If successful (because the card was already
265 // present, or because it was successfully added) returns "true".
266 // Otherwise, returns "false" to indicate that the addition would
267 // overflow the entry for the region. The caller must transfer these
268 // entries to a larger-capacity representation.
269 bool add_card(RegionIdx_t region_id, CardIdx_t card_index);
270
271 // Return the pointer to the entry associated with the given region.
272 SparsePRTEntry* get_entry(RegionIdx_t region_ind);
273
|