equal
deleted
inserted
replaced
180 |
180 |
181 jint Klass::array_layout_helper(BasicType etype) { |
181 jint Klass::array_layout_helper(BasicType etype) { |
182 assert(etype >= T_BOOLEAN && etype <= T_OBJECT, "valid etype"); |
182 assert(etype >= T_BOOLEAN && etype <= T_OBJECT, "valid etype"); |
183 // Note that T_ARRAY is not allowed here. |
183 // Note that T_ARRAY is not allowed here. |
184 int hsize = arrayOopDesc::base_offset_in_bytes(etype); |
184 int hsize = arrayOopDesc::base_offset_in_bytes(etype); |
185 int esize = type2aelembytes[etype]; |
185 int esize = type2aelembytes(etype); |
186 bool isobj = (etype == T_OBJECT); |
186 bool isobj = (etype == T_OBJECT); |
187 int tag = isobj ? _lh_array_tag_obj_value : _lh_array_tag_type_value; |
187 int tag = isobj ? _lh_array_tag_obj_value : _lh_array_tag_type_value; |
188 int lh = array_layout_helper(tag, hsize, etype, exact_log2(esize)); |
188 int lh = array_layout_helper(tag, hsize, etype, exact_log2(esize)); |
189 |
189 |
190 assert(lh < (int)_lh_neutral_value, "must look like an array layout"); |
190 assert(lh < (int)_lh_neutral_value, "must look like an array layout"); |