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 // Requires that "mr" be entirely within the region.
657 // Apply "cl->do_object" to all objects that intersect with "mr".
658 // If the iteration encounters an unparseable portion of the region,
659 // or if "cl->abort()" is true after a closure application,
660 // terminate the iteration and return the address of the start of the
661 // subregion that isn't done. (The two can be distinguished by querying
662 // "cl->abort()".) Return of "NULL" indicates that the iteration
663 // completed.
664 HeapWord*
665 object_iterate_mem_careful(MemRegion mr, ObjectClosure* cl);
666
667 // filter_young: if true and the region is a young region then we
668 // skip the iteration.
669 // card_ptr: if not NULL, and we decide that the card is not young
670 // and we iterate over it, we'll clean the card before we start the
671 // iteration.
672 HeapWord*
673 oops_on_card_seq_iterate_careful(MemRegion mr,
674 FilterOutOfRegionClosure* cl,
675 bool filter_young,
676 jbyte* card_ptr);
677
678 size_t recorded_rs_length() const { return _recorded_rs_length; }
679 double predicted_elapsed_time_ms() const { return _predicted_elapsed_time_ms; }
680 size_t predicted_bytes_to_copy() const { return _predicted_bytes_to_copy; }
681
682 void set_recorded_rs_length(size_t rs_length) {
683 _recorded_rs_length = rs_length;
684 }
685
686 void set_predicted_elapsed_time_ms(double ms) {
|
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) {
|