equal
deleted
inserted
replaced
657 if (!gch->is_maximal_no_gc()) { |
657 if (!gch->is_maximal_no_gc()) { |
658 result = expand_heap_and_allocate(size, is_tlab); |
658 result = expand_heap_and_allocate(size, is_tlab); |
659 } |
659 } |
660 return result; // could be null if we are out of space |
660 return result; // could be null if we are out of space |
661 } else if (!gch->incremental_collection_will_fail()) { |
661 } else if (!gch->incremental_collection_will_fail()) { |
662 // The gc_prologues have not executed yet. The value |
|
663 // for incremental_collection_will_fail() is the remanent |
|
664 // of the last collection. |
|
665 // Do an incremental collection. |
662 // Do an incremental collection. |
666 gch->do_collection(false /* full */, |
663 gch->do_collection(false /* full */, |
667 false /* clear_all_soft_refs */, |
664 false /* clear_all_soft_refs */, |
668 size /* size */, |
665 size /* size */, |
669 is_tlab /* is_tlab */, |
666 is_tlab /* is_tlab */, |
737 bool GenCollectorPolicy::should_try_older_generation_allocation( |
734 bool GenCollectorPolicy::should_try_older_generation_allocation( |
738 size_t word_size) const { |
735 size_t word_size) const { |
739 GenCollectedHeap* gch = GenCollectedHeap::heap(); |
736 GenCollectedHeap* gch = GenCollectedHeap::heap(); |
740 size_t gen0_capacity = gch->get_gen(0)->capacity_before_gc(); |
737 size_t gen0_capacity = gch->get_gen(0)->capacity_before_gc(); |
741 return (word_size > heap_word_size(gen0_capacity)) |
738 return (word_size > heap_word_size(gen0_capacity)) |
742 || (GC_locker::is_active_and_needs_gc()) |
739 || GC_locker::is_active_and_needs_gc() |
743 || ( gch->last_incremental_collection_failed() |
740 || gch->incremental_collection_failed(); |
744 && gch->incremental_collection_will_fail()); |
|
745 } |
741 } |
746 |
742 |
747 |
743 |
748 // |
744 // |
749 // MarkSweepPolicy methods |
745 // MarkSweepPolicy methods |