equal
deleted
inserted
replaced
690 } else { |
690 } else { |
691 assert(_promo_failure_scan_stack.is_empty(), "post condition"); |
691 assert(_promo_failure_scan_stack.is_empty(), "post condition"); |
692 _promo_failure_scan_stack.clear(true); // Clear cached segments. |
692 _promo_failure_scan_stack.clear(true); // Clear cached segments. |
693 |
693 |
694 remove_forwarding_pointers(); |
694 remove_forwarding_pointers(); |
695 log_debug(gc)("Promotion failed"); |
695 log_info(gc, promotion)("Promotion failed"); |
696 // Add to-space to the list of space to compact |
696 // Add to-space to the list of space to compact |
697 // when a promotion failure has occurred. In that |
697 // when a promotion failure has occurred. In that |
698 // case there can be live objects in to-space |
698 // case there can be live objects in to-space |
699 // as a result of a partial evacuation of eden |
699 // as a result of a partial evacuation of eden |
700 // and from-space. |
700 // and from-space. |
737 void DefNewGeneration::remove_forwarding_pointers() { |
737 void DefNewGeneration::remove_forwarding_pointers() { |
738 RemoveForwardedPointerClosure rspc; |
738 RemoveForwardedPointerClosure rspc; |
739 eden()->object_iterate(&rspc); |
739 eden()->object_iterate(&rspc); |
740 from()->object_iterate(&rspc); |
740 from()->object_iterate(&rspc); |
741 |
741 |
742 // Now restore saved marks, if any. |
742 _preserved_marks_set.restore(GenCollectedHeap::heap()->workers()); |
743 _preserved_marks_set.restore(); |
|
744 } |
743 } |
745 |
744 |
746 void DefNewGeneration::handle_promotion_failure(oop old) { |
745 void DefNewGeneration::handle_promotion_failure(oop old) { |
747 log_debug(gc, promotion)("Promotion failure size = %d) ", old->size()); |
746 log_debug(gc, promotion)("Promotion failure size = %d) ", old->size()); |
748 |
747 |