Mercurial > hg > graal-jvmci-8
diff src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp @ 22937:af8f16ac392c
8066771: Refactor VM GC operations caused by allocation failure
Reviewed-by: brutisso, jmasa
author | mlarsson |
---|---|
date | Thu, 09 Apr 2015 15:59:26 +0200 |
parents | fb69749583e8 |
children |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp Thu Apr 09 15:58:49 2015 +0200 +++ b/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp Thu Apr 09 15:59:26 2015 +0200 @@ -32,12 +32,10 @@ #include "utilities/dtrace.hpp" // The following methods are used by the parallel scavenge collector -VM_ParallelGCFailedAllocation::VM_ParallelGCFailedAllocation(size_t size, +VM_ParallelGCFailedAllocation::VM_ParallelGCFailedAllocation(size_t word_size, uint gc_count) : - VM_GC_Operation(gc_count, GCCause::_allocation_failure), - _size(size), - _result(NULL) -{ + VM_CollectForAllocation(word_size, gc_count, GCCause::_allocation_failure) { + assert(word_size != 0, "An allocation should always be requested with this operation."); } void VM_ParallelGCFailedAllocation::doit() { @@ -47,7 +45,7 @@ assert(heap->kind() == CollectedHeap::ParallelScavengeHeap, "must be a ParallelScavengeHeap"); GCCauseSetter gccs(heap, _gc_cause); - _result = heap->failed_mem_allocate(_size); + _result = heap->failed_mem_allocate(_word_size); if (_result == NULL && GC_locker::is_active_and_needs_gc()) { set_gc_locked();