320
321 void set_region_in_collection_set(size_t region_index, bool b);
322
323 // Mainly there to avoid accidentally calling the templated
324 // method below with ShenandoahHeapRegion* which would be *wrong*.
325 inline bool in_collection_set(ShenandoahHeapRegion* r) const;
326
327 template <class T>
328 inline bool in_collection_set(T obj) const;
329
330 void clear_cset_fast_test();
331
332 inline bool allocated_after_next_mark_start(HeapWord* addr) const;
333 void set_next_top_at_mark_start(HeapWord* region_base, HeapWord* addr);
334 HeapWord* next_top_at_mark_start(HeapWord* region_base);
335
336 inline bool allocated_after_complete_mark_start(HeapWord* addr) const;
337 void set_complete_top_at_mark_start(HeapWord* region_base, HeapWord* addr);
338 HeapWord* complete_top_at_mark_start(HeapWord* region_base);
339
340 inline oop evacuate_object(oop src, Thread* thread);
341 inline bool cancelled_concgc() const;
342 inline void set_cancelled_concgc(bool v);
343 inline bool try_cancel_concgc() const;
344 void clear_cancelled_concgc();
345
346 ShenandoahHeapRegionSet* regions() { return _ordered_regions;}
347 ShenandoahFreeSet* free_regions();
348 ShenandoahCollectionSet* collection_set() { return _collection_set; }
349 void clear_free_regions();
350 void add_free_region(ShenandoahHeapRegion* r);
351
352 ShenandoahConnectionMatrix* connection_matrix();
353
354 void increase_used(size_t bytes);
355 void decrease_used(size_t bytes);
356
357 void set_used(size_t bytes);
358 size_t calculateUsed();
359
360 size_t garbage();
|
320
321 void set_region_in_collection_set(size_t region_index, bool b);
322
323 // Mainly there to avoid accidentally calling the templated
324 // method below with ShenandoahHeapRegion* which would be *wrong*.
325 inline bool in_collection_set(ShenandoahHeapRegion* r) const;
326
327 template <class T>
328 inline bool in_collection_set(T obj) const;
329
330 void clear_cset_fast_test();
331
332 inline bool allocated_after_next_mark_start(HeapWord* addr) const;
333 void set_next_top_at_mark_start(HeapWord* region_base, HeapWord* addr);
334 HeapWord* next_top_at_mark_start(HeapWord* region_base);
335
336 inline bool allocated_after_complete_mark_start(HeapWord* addr) const;
337 void set_complete_top_at_mark_start(HeapWord* region_base, HeapWord* addr);
338 HeapWord* complete_top_at_mark_start(HeapWord* region_base);
339
340 // Evacuates object src. Returns the evacuated object if this thread
341 // succeeded, otherwise rolls back the evacuation and returns the
342 // evacuated object by the competing thread. 'succeeded' is an out
343 // param and set to true if this thread succeeded, otherwise to false.
344 inline oop evacuate_object(oop src, Thread* thread, bool& evacuated);
345 inline bool cancelled_concgc() const;
346 inline void set_cancelled_concgc(bool v);
347 inline bool try_cancel_concgc() const;
348 void clear_cancelled_concgc();
349
350 ShenandoahHeapRegionSet* regions() { return _ordered_regions;}
351 ShenandoahFreeSet* free_regions();
352 ShenandoahCollectionSet* collection_set() { return _collection_set; }
353 void clear_free_regions();
354 void add_free_region(ShenandoahHeapRegion* r);
355
356 ShenandoahConnectionMatrix* connection_matrix();
357
358 void increase_used(size_t bytes);
359 void decrease_used(size_t bytes);
360
361 void set_used(size_t bytes);
362 size_t calculateUsed();
363
364 size_t garbage();
|