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; } |