< prev index next >

src/hotspot/share/opto/parse2.cpp

Print this page

        

@@ -71,11 +71,11 @@
     return;
   } else if (elemptr != NULL && elemptr->is_valuetypeptr() && !elemptr->maybe_null()) {
     // Load from non-flattened but flattenable value type array (elements can never be null)
     bt = T_VALUETYPE;
   } else if (ValueArrayFlatten && elemptr != NULL && elemptr->can_be_value_type() &&
-             (!ary_t->klass_is_exact() || (elemptr->is_valuetypeptr() && elemptr->value_klass()->flatten_array()))) {
+             ((!elemptr->is_valuetypeptr() && !ary_t->klass_is_exact()) || (elemptr->is_valuetypeptr() && elemptr->value_klass()->flatten_array()))) {
     // Cannot statically determine if array is flattened, emit runtime check
     IdealKit ideal(this);
     IdealVariable res(ideal);
     ideal.declarations_done();
     Node* kls = load_object_klass(ary);
< prev index next >