8029351: assert(bt != T_OBJECT) failed: Guard is incorrect in VM:defmeth
authordrchase
Thu, 12 Dec 2013 15:11:35 -0500
changeset 22230 2b4b260229d0
parent 22229 49ce27d68917
child 22231 1cca24bb3125
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
hotspot/src/share/vm/oops/generateOopMap.cpp
--- 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 {