提交 65c4cdad 编写于 作者: D drchase

8029351: assert(bt != T_OBJECT) failed: Guard is incorrect in VM:defmeth

Summary: replace test condition with reference to the proper predicate, encode folk wisdom into an assert
Reviewed-by: twisti, coleenp
上级 de53f6db
...@@ -1863,11 +1863,8 @@ void GenerateOopMap::do_ldc(int bci) { ...@@ -1863,11 +1863,8 @@ void GenerateOopMap::do_ldc(int bci) {
constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references
BasicType bt = ldc.result_type(); BasicType bt = ldc.result_type();
CellTypeState cts; CellTypeState cts;
if (tag.is_klass() || if (tag.basic_type() == T_OBJECT) {
tag.is_unresolved_klass() || assert(!tag.is_string_index() && !tag.is_klass_index(), "Unexpected index tag");
tag.is_string() ||
tag.is_method_handle() ||
tag.is_method_type()) {
assert(bt == T_OBJECT, "Guard is incorrect"); assert(bt == T_OBJECT, "Guard is incorrect");
cts = CellTypeState::make_line_ref(bci); cts = CellTypeState::make_line_ref(bci);
} else { } else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册