提交 fcf83014 编写于 作者: K kvn

6980978: assert(mt == t->xmeet(this)) failed: meet not commutative

Summary: Fix code in TypeAryPtr::xmeet() for constant array.
Reviewed-by: never
上级 1d0fc71f
......@@ -3369,7 +3369,7 @@ const Type *TypeAryPtr::xmeet( const Type *t ) const {
tary = TypeAry::make(Type::BOTTOM, tary->_size);
}
}
bool xk;
bool xk = false;
switch (tap->ptr()) {
case AnyNull:
case TopPTR:
......@@ -3391,9 +3391,10 @@ const Type *TypeAryPtr::xmeet( const Type *t ) const {
o = tap->const_oop();
xk = true;
} else {
xk = this->_klass_is_exact;
// Only precise for identical arrays
xk = this->_klass_is_exact && (klass() == tap->klass());
}
return TypeAryPtr::make( ptr, o, tary, tap->_klass, xk, off, instance_id );
return TypeAryPtr::make( ptr, o, tary, lazy_klass, xk, off, instance_id );
}
case NotNull:
case BotPTR:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册