changeset 5772:9ae5189791f4

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
author drchase
date Thu, 12 Dec 2013 15:11:35 -0500
parents 8379a22ac89d
children f9508a2fd4d8
files src/share/vm/oops/generateOopMap.cpp
diffstat 1 files changed, 2 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/oops/generateOopMap.cpp	Fri Dec 13 00:34:09 2013 +0400
+++ b/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 {