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
--- a/hotspot/src/share/vm/oops/generateOopMap.cpp Fri Dec 13 00:34:09 2013 +0400
+++ b/hotspot/src/share/vm/oops/generateOopMap.cpp Thu Dec 12 15:11:35 2013 -0500
@@ -1863,11 +1863,8 @@
constantTag tag = cp->tag_at(ldc.pool_index()); // idx is index in resolved_references
BasicType bt = ldc.result_type();
CellTypeState cts;
- if (tag.is_klass() ||
- tag.is_unresolved_klass() ||
- tag.is_string() ||
- tag.is_method_handle() ||
- tag.is_method_type()) {
+ if (tag.basic_type() == T_OBJECT) {
+ assert(!tag.is_string_index() && !tag.is_klass_index(), "Unexpected index tag");
assert(bt == T_OBJECT, "Guard is incorrect");
cts = CellTypeState::make_line_ref(bci);
} else {