comparison src/share/vm/gc_implementation/g1/heapRegion.hpp @ 17773:8ee855b4e667

8036025: Sort the freelist in order to shrink the heap Summary: The free list is being maintained in a sorted fashion and old and humongous regions are allocated from the bottom of the heap while young regions are allocated at the top. Reviewed-by: tschatzl, mgerdin Contributed-by: jesper.wilhelmsson@oracle.com, staffan.friberg@oracle.com
author jwilhelm
date Fri, 28 Feb 2014 15:27:09 +0100
parents 96b1c2e06e25
children 78bbf4d43a14
comparison
equal deleted inserted replaced
17763:6e7e363c5a8f 17773:8ee855b4e667
269 // Next region whose cards need cleaning 269 // Next region whose cards need cleaning
270 HeapRegion* _next_dirty_cards_region; 270 HeapRegion* _next_dirty_cards_region;
271 271
272 // Fields used by the HeapRegionSetBase class and subclasses. 272 // Fields used by the HeapRegionSetBase class and subclasses.
273 HeapRegion* _next; 273 HeapRegion* _next;
274 HeapRegion* _prev;
274 #ifdef ASSERT 275 #ifdef ASSERT
275 HeapRegionSetBase* _containing_set; 276 HeapRegionSetBase* _containing_set;
276 #endif // ASSERT 277 #endif // ASSERT
277 bool _pending_removal; 278 bool _pending_removal;
278 279
529 _next_in_special_set = r; 530 _next_in_special_set = r;
530 } 531 }
531 532
532 // Methods used by the HeapRegionSetBase class and subclasses. 533 // Methods used by the HeapRegionSetBase class and subclasses.
533 534
534 // Getter and setter for the next field used to link regions into 535 // Getter and setter for the next and prev fields used to link regions into
535 // linked lists. 536 // linked lists.
536 HeapRegion* next() { return _next; } 537 HeapRegion* next() { return _next; }
538 HeapRegion* prev() { return _prev; }
537 539
538 void set_next(HeapRegion* next) { _next = next; } 540 void set_next(HeapRegion* next) { _next = next; }
541 void set_prev(HeapRegion* prev) { _prev = prev; }
539 542
540 // Every region added to a set is tagged with a reference to that 543 // Every region added to a set is tagged with a reference to that
541 // set. This is used for doing consistency checking to make sure that 544 // set. This is used for doing consistency checking to make sure that
542 // the contents of a set are as they should be and it's only 545 // the contents of a set are as they should be and it's only
543 // available in non-product builds. 546 // available in non-product builds.