--- a/hotspot/src/share/vm/opto/superword.cpp Mon Jun 23 18:21:18 2008 -0700
+++ b/hotspot/src/share/vm/opto/superword.cpp Tue Jun 24 10:43:29 2008 -0700
@@ -1424,9 +1424,9 @@
//---------------------------container_type---------------------------
// Smallest type containing range of values
const Type* SuperWord::container_type(const Type* t) {
- if (t->isa_narrowoop()) t = t->is_narrowoop()->make_oopptr();
- if (t->isa_aryptr()) {
- t = t->is_aryptr()->elem();
+ const Type* tp = t->make_ptr();
+ if (tp && tp->isa_aryptr()) {
+ t = tp->is_aryptr()->elem();
}
if (t->basic_type() == T_INT) {
if (t->higher_equal(TypeInt::BOOL)) return TypeInt::BOOL;