636 // is within the unmarked area of the region.
637 bool obj_allocated_since_prev_marking(oop obj) const {
638 return (HeapWord *) obj >= prev_top_at_mark_start();
639 }
640 bool obj_allocated_since_next_marking(oop obj) const {
641 return (HeapWord *) obj >= next_top_at_mark_start();
642 }
643
644 // Returns the "evacuation_failed" property of the region.
645 bool evacuation_failed() { return _evacuation_failed; }
646
647 // Sets the "evacuation_failed" property of the region.
648 void set_evacuation_failed(bool b) {
649 _evacuation_failed = b;
650
651 if (b) {
652 _next_marked_bytes = 0;
653 }
654 }
655
656 // filter_young: if true and the region is a young region then we
657 // skip the iteration.
658 // card_ptr: if not NULL, and we decide that the card is not young
659 // and we iterate over it, we'll clean the card before we start the
660 // iteration.
661 HeapWord*
662 oops_on_card_seq_iterate_careful(MemRegion mr,
663 FilterOutOfRegionClosure* cl,
664 bool filter_young,
665 jbyte* card_ptr);
666
667 size_t recorded_rs_length() const { return _recorded_rs_length; }
668 double predicted_elapsed_time_ms() const { return _predicted_elapsed_time_ms; }
669 size_t predicted_bytes_to_copy() const { return _predicted_bytes_to_copy; }
670
671 void set_recorded_rs_length(size_t rs_length) {
672 _recorded_rs_length = rs_length;
673 }
674
675 void set_predicted_elapsed_time_ms(double ms) {
676 _predicted_elapsed_time_ms = ms;
677 }
678
679 void set_predicted_bytes_to_copy(size_t bytes) {
680 _predicted_bytes_to_copy = bytes;
681 }
682
683 virtual CompactibleSpace* next_compaction_space() const;
684
|
636 // is within the unmarked area of the region.
637 bool obj_allocated_since_prev_marking(oop obj) const {
638 return (HeapWord *) obj >= prev_top_at_mark_start();
639 }
640 bool obj_allocated_since_next_marking(oop obj) const {
641 return (HeapWord *) obj >= next_top_at_mark_start();
642 }
643
644 // Returns the "evacuation_failed" property of the region.
645 bool evacuation_failed() { return _evacuation_failed; }
646
647 // Sets the "evacuation_failed" property of the region.
648 void set_evacuation_failed(bool b) {
649 _evacuation_failed = b;
650
651 if (b) {
652 _next_marked_bytes = 0;
653 }
654 }
655
656 // mr: the memory region covered by the card.
657 // card_ptr: if we decide that the card is not young and we iterate
658 // over it, we'll clean the card before we start the iteration.
659 // Returns true if card was successfully processed, false if an
660 // unparsable part of the heap was encountered, which should only
661 // happen when invoked concurrently with the mutator.
662 bool oops_on_card_seq_iterate_careful(MemRegion mr,
663 FilterOutOfRegionClosure* cl,
664 jbyte* card_ptr);
665
666 size_t recorded_rs_length() const { return _recorded_rs_length; }
667 double predicted_elapsed_time_ms() const { return _predicted_elapsed_time_ms; }
668 size_t predicted_bytes_to_copy() const { return _predicted_bytes_to_copy; }
669
670 void set_recorded_rs_length(size_t rs_length) {
671 _recorded_rs_length = rs_length;
672 }
673
674 void set_predicted_elapsed_time_ms(double ms) {
675 _predicted_elapsed_time_ms = ms;
676 }
677
678 void set_predicted_bytes_to_copy(size_t bytes) {
679 _predicted_bytes_to_copy = bytes;
680 }
681
682 virtual CompactibleSpace* next_compaction_space() const;
683
|