525 }
526
527 // Methods used by the HeapRegionSetBase class and subclasses.
528
529 // Getter and setter for the next and prev fields used to link regions into
530 // linked lists.
531 HeapRegion* next() { return _next; }
532 HeapRegion* prev() { return _prev; }
533
534 void set_next(HeapRegion* next) { _next = next; }
535 void set_prev(HeapRegion* prev) { _prev = prev; }
536
537 // Every region added to a set is tagged with a reference to that
538 // set. This is used for doing consistency checking to make sure that
539 // the contents of a set are as they should be and it's only
540 // available in non-product builds.
541 #ifdef ASSERT
542 void set_containing_set(HeapRegionSetBase* containing_set) {
543 assert((containing_set == NULL && _containing_set != NULL) ||
544 (containing_set != NULL && _containing_set == NULL),
545 err_msg("containing_set: " PTR_FORMAT " "
546 "_containing_set: " PTR_FORMAT,
547 p2i(containing_set), p2i(_containing_set)));
548
549 _containing_set = containing_set;
550 }
551
552 HeapRegionSetBase* containing_set() { return _containing_set; }
553 #else // ASSERT
554 void set_containing_set(HeapRegionSetBase* containing_set) { }
555
556 // containing_set() is only used in asserts so there's no reason
557 // to provide a dummy version of it.
558 #endif // ASSERT
559
560 HeapRegion* get_next_young_region() { return _next_young_region; }
561 void set_next_young_region(HeapRegion* hr) {
562 _next_young_region = hr;
563 }
564
565 HeapRegion* get_next_dirty_cards_region() const { return _next_dirty_cards_region; }
566 HeapRegion** next_dirty_cards_region_addr() { return &_next_dirty_cards_region; }
567 void set_next_dirty_cards_region(HeapRegion* hr) { _next_dirty_cards_region = hr; }
|
525 }
526
527 // Methods used by the HeapRegionSetBase class and subclasses.
528
529 // Getter and setter for the next and prev fields used to link regions into
530 // linked lists.
531 HeapRegion* next() { return _next; }
532 HeapRegion* prev() { return _prev; }
533
534 void set_next(HeapRegion* next) { _next = next; }
535 void set_prev(HeapRegion* prev) { _prev = prev; }
536
537 // Every region added to a set is tagged with a reference to that
538 // set. This is used for doing consistency checking to make sure that
539 // the contents of a set are as they should be and it's only
540 // available in non-product builds.
541 #ifdef ASSERT
542 void set_containing_set(HeapRegionSetBase* containing_set) {
543 assert((containing_set == NULL && _containing_set != NULL) ||
544 (containing_set != NULL && _containing_set == NULL),
545 "containing_set: " PTR_FORMAT " "
546 "_containing_set: " PTR_FORMAT,
547 p2i(containing_set), p2i(_containing_set));
548
549 _containing_set = containing_set;
550 }
551
552 HeapRegionSetBase* containing_set() { return _containing_set; }
553 #else // ASSERT
554 void set_containing_set(HeapRegionSetBase* containing_set) { }
555
556 // containing_set() is only used in asserts so there's no reason
557 // to provide a dummy version of it.
558 #endif // ASSERT
559
560 HeapRegion* get_next_young_region() { return _next_young_region; }
561 void set_next_young_region(HeapRegion* hr) {
562 _next_young_region = hr;
563 }
564
565 HeapRegion* get_next_dirty_cards_region() const { return _next_dirty_cards_region; }
566 HeapRegion** next_dirty_cards_region_addr() { return &_next_dirty_cards_region; }
567 void set_next_dirty_cards_region(HeapRegion* hr) { _next_dirty_cards_region = hr; }
|