1.1 --- a/src/share/vm/opto/parse2.cpp Fri Apr 11 09:56:35 2008 -0400 1.2 +++ b/src/share/vm/opto/parse2.cpp Sun Apr 13 17:43:42 2008 -0400 1.3 @@ -67,12 +67,16 @@ 1.4 const Type* elemtype = arytype->elem(); 1.5 1.6 if (UseUniqueSubclasses && result2 != NULL) { 1.7 - const TypeInstPtr* toop = elemtype->isa_instptr(); 1.8 + const Type* el = elemtype; 1.9 + if (elemtype->isa_narrowoop()) { 1.10 + el = elemtype->is_narrowoop()->make_oopptr(); 1.11 + } 1.12 + const TypeInstPtr* toop = el->isa_instptr(); 1.13 if (toop) { 1.14 if (toop->klass()->as_instance_klass()->unique_concrete_subklass()) { 1.15 // If we load from "AbstractClass[]" we must see "ConcreteSubClass". 1.16 const Type* subklass = Type::get_const_type(toop->klass()); 1.17 - elemtype = subklass->join(elemtype); 1.18 + elemtype = subklass->join(el); 1.19 } 1.20 } 1.21 }