--- old/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp 2015-02-05 16:34:48.773984383 +0100 +++ new/src/share/vm/gc_implementation/parallelScavenge/vmPSOperations.cpp 2015-02-05 16:34:48.689987120 +0100 @@ -32,13 +32,9 @@ #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) {} void VM_ParallelGCFailedAllocation::doit() { SvcGCMarker sgcm(SvcGCMarker::MINOR); @@ -47,7 +43,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();