diff src/share/vm/classfile/verificationType.cpp @ 1677:a5c9d63a187d

6964170: Verifier crashes Summary: Check if klassOop != NULL rather than klass_part != NULL Reviewed-by: kamg, never
author apangin
date Tue, 20 Jul 2010 08:41:42 -0700
parents c18cbe5936b8
children 60f88489896f
line wrap: on
line diff
--- a/src/share/vm/classfile/verificationType.cpp	Sat Jul 17 21:49:23 2010 -0700
+++ b/src/share/vm/classfile/verificationType.cpp	Tue Jul 20 08:41:42 2010 -0700
@@ -70,7 +70,9 @@
   } else if (is_array() && from.is_array()) {
     VerificationType comp_this = get_component(CHECK_false);
     VerificationType comp_from = from.get_component(CHECK_false);
-    return comp_this.is_assignable_from(comp_from, context, CHECK_false);
+    if (!comp_this.is_bogus() && !comp_from.is_bogus()) {
+      return comp_this.is_assignable_from(comp_from, context, CHECK_false);
+    }
   }
   return false;
 }
@@ -98,7 +100,7 @@
         CHECK_(VerificationType::bogus_type()));
       return VerificationType::reference_type(component);
     default:
-      ShouldNotReachHere();
+      // Met an invalid type signature, e.g. [X
       return VerificationType::bogus_type();
   }
 }