495 #ifdef ASSERT 496 void set_containing_set(HeapRegionSetBase* containing_set) { 497 assert((containing_set == NULL && _containing_set != NULL) || 498 (containing_set != NULL && _containing_set == NULL), 499 "containing_set: " PTR_FORMAT " " 500 "_containing_set: " PTR_FORMAT, 501 p2i(containing_set), p2i(_containing_set)); 502 503 _containing_set = containing_set; 504 } 505 506 HeapRegionSetBase* containing_set() { return _containing_set; } 507 #else // ASSERT 508 void set_containing_set(HeapRegionSetBase* containing_set) { } 509 510 // containing_set() is only used in asserts so there's no reason 511 // to provide a dummy version of it. 512 #endif // ASSERT 513 514 515 // Reset HR stuff to default values. 516 void hr_clear(bool par, bool clear_space, bool locked = false); 517 void par_clear(); 518 519 // Get the start of the unmarked area in this region. 520 HeapWord* prev_top_at_mark_start() const { return _prev_top_at_mark_start; } 521 HeapWord* next_top_at_mark_start() const { return _next_top_at_mark_start; } 522 523 // Note the start or end of marking. This tells the heap region 524 // that the collector is about to start or has finished (concurrently) 525 // marking the heap. 526 527 // Notify the region that concurrent marking is starting. Initialize 528 // all fields related to the next marking info. 529 inline void note_start_of_marking(); 530 531 // Notify the region that concurrent marking has finished. Copy the 532 // (now finalized) next marking info fields into the prev marking 533 // info fields. 534 inline void note_end_of_marking(); 535 536 // Notify the region that it will be used as to-space during a GC | 495 #ifdef ASSERT 496 void set_containing_set(HeapRegionSetBase* containing_set) { 497 assert((containing_set == NULL && _containing_set != NULL) || 498 (containing_set != NULL && _containing_set == NULL), 499 "containing_set: " PTR_FORMAT " " 500 "_containing_set: " PTR_FORMAT, 501 p2i(containing_set), p2i(_containing_set)); 502 503 _containing_set = containing_set; 504 } 505 506 HeapRegionSetBase* containing_set() { return _containing_set; } 507 #else // ASSERT 508 void set_containing_set(HeapRegionSetBase* containing_set) { } 509 510 // containing_set() is only used in asserts so there's no reason 511 // to provide a dummy version of it. 512 #endif // ASSERT 513 514 515 // Reset the HeapRegion to default values. 516 // If skip_remset is true, do not clear the remembered set. 517 void hr_clear(bool skip_remset, bool clear_space, bool locked = false); 518 // Clear the parts skipped by skip_remset in hr_clear() in the HeapRegion during 519 // a concurrent phase. 520 void par_clear(); 521 522 // Get the start of the unmarked area in this region. 523 HeapWord* prev_top_at_mark_start() const { return _prev_top_at_mark_start; } 524 HeapWord* next_top_at_mark_start() const { return _next_top_at_mark_start; } 525 526 // Note the start or end of marking. This tells the heap region 527 // that the collector is about to start or has finished (concurrently) 528 // marking the heap. 529 530 // Notify the region that concurrent marking is starting. Initialize 531 // all fields related to the next marking info. 532 inline void note_start_of_marking(); 533 534 // Notify the region that concurrent marking has finished. Copy the 535 // (now finalized) next marking info fields into the prev marking 536 // info fields. 537 inline void note_end_of_marking(); 538 539 // Notify the region that it will be used as to-space during a GC |