--- old/src/hotspot/share/gc/shared/memAllocator.cpp 2019-07-08 17:19:16.270723129 +0000 +++ new/src/hotspot/share/gc/shared/memAllocator.cpp 2019-07-08 17:19:15.998722848 +0000 @@ -375,12 +375,13 @@ return obj; } -void MemAllocator::mem_clear(HeapWord* mem) const { +HeapWord* MemAllocator::mem_clear(HeapWord* mem) const { assert(mem != NULL, "cannot initialize NULL object"); const size_t hs = oopDesc::header_size(); assert(_word_size >= hs, "unexpected object size"); oopDesc::set_klass_gap(mem, 0); Copy::fill_to_aligned_words(mem + hs, _word_size - hs); + return mem; } oop MemAllocator::finish(HeapWord* mem) const { @@ -399,7 +400,7 @@ } oop ObjAllocator::initialize(HeapWord* mem) const { - mem_clear(mem); + mem = mem_clear(mem); return finish(mem); } @@ -418,7 +419,7 @@ // concurrent GC. assert(_length >= 0, "length should be non-negative"); if (_do_zero) { - mem_clear(mem); + mem = mem_clear(mem); } arrayOopDesc::set_length(mem, _length); return finish(mem); @@ -429,7 +430,7 @@ // non-NULL _klass field indicates that the object is parsable by // concurrent GC. assert(_word_size > 0, "oop_size must be positive."); - mem_clear(mem); + mem = mem_clear(mem); java_lang_Class::set_oop_size(mem, (int)_word_size); return finish(mem); }