--- old/src/share/vm/oops/valueArrayKlass.cpp 2017-03-16 13:22:47.061177857 +0100 +++ new/src/share/vm/oops/valueArrayKlass.cpp 2017-03-16 13:22:46.925175019 +0100 @@ -131,12 +131,11 @@ jint ValueArrayKlass::array_layout_helper(ValueKlass* vk) { BasicType etype = T_VALUETYPE; - int atag = _lh_array_tag_type_value; + int atag = _lh_array_tag_vt_value; int esize = upper_log2(vk->raw_value_byte_size()); int hsize = arrayOopDesc::base_offset_in_bytes(etype); int lh = (atag << _lh_array_tag_shift) - | (1 << _lh_valuetype_bit) | (hsize << _lh_header_size_shift) | ((int)etype << _lh_element_type_shift) | ((esize) << _lh_log2_element_size_shift); @@ -144,9 +143,10 @@ assert(lh < (int)_lh_neutral_value, "must look like an array layout"); assert(layout_helper_is_array(lh), "correct kind"); assert(layout_helper_is_valueArray(lh), "correct kind"); + assert(!layout_helper_is_typeArray(lh), "correct kind"); + assert(!layout_helper_is_objArray(lh), "correct kind"); assert(layout_helper_header_size(lh) == hsize, "correct decode"); assert(layout_helper_element_type(lh) == etype, "correct decode"); - assert(layout_helper_is_typeArray(lh), "correct kind"); assert(layout_helper_log2_element_size(lh) == esize, "correct decode"); assert((1 << esize) < BytesPerLong || is_size_aligned(hsize, HeapWordsPerLong), "unaligned base");