hg: valhalla/valhalla/hotspot: value_store/ValueArray header & element size fixes

David Simms david.simms at oracle.com
Tue Mar 14 13:39:15 UTC 2017

Grrr, there remains a bug...

value_store is using "nonstatic_field_size() << LogBytesPerHeapOop" 
which is not always jlong size aligned.

So whilst JVM_Clone for whole object (i.e.: from oop header through all 
fields) is guaranteed to be align size to jlong for copying, just the 
field payload is not. Value store operations for array load/store and 
derive value type copying, do not want to copy mark and klass ptrs.

We align up the start of the fields to BytesPerLong, I guess the 
nonstatic_fields_size also needs jlong alignment when greater than 
BytesPerLong (i.e. small values remain small, copy via jbyte, jshort and 
jint pointers).

Will push a quick fix soon, unless I hear any objection.

/David Simms

On 14/03/17 10:50, david.simms at oracle.com wrote:
> Changeset: 659925d66604
> Author:    dsimms
> Date:      2017-03-14 10:49 +0100
> URL:       http://hg.openjdk.java.net/valhalla/valhalla/hotspot/rev/659925d66604
> value_store/ValueArray header & element size fixes
> ! src/share/vm/interpreter/interpreterRuntime.cpp
> ! src/share/vm/memory/universe.inline.hpp
> ! src/share/vm/oops/valueArrayKlass.cpp
> ! src/share/vm/oops/valueArrayKlass.hpp
> ! src/share/vm/oops/valueKlass.cpp
> ! src/share/vm/oops/valueKlass.hpp
> ! src/share/vm/oops/valueKlass.inline.hpp

More information about the valhalla-dev mailing list