1.1 --- a/src/share/vm/opto/cfgnode.cpp Mon Jun 23 18:21:18 2008 -0700 1.2 +++ b/src/share/vm/opto/cfgnode.cpp Tue Jun 24 10:43:29 2008 -0700 1.3 @@ -854,7 +854,8 @@ 1.4 // Until we have harmony between classes and interfaces in the type 1.5 // lattice, we must tread carefully around phis which implicitly 1.6 // convert the one to the other. 1.7 - const TypeInstPtr* ttip = _type->isa_narrowoop() ? _type->isa_narrowoop()->make_oopptr()->isa_instptr() :_type->isa_instptr(); 1.8 + const TypePtr* ttp = _type->make_ptr(); 1.9 + const TypeInstPtr* ttip = (ttp != NULL) ? ttp->isa_instptr() : NULL; 1.10 bool is_intf = false; 1.11 if (ttip != NULL) { 1.12 ciKlass* k = ttip->klass(); 1.13 @@ -873,7 +874,8 @@ 1.14 // of all the input types. The lattice is not distributive in 1.15 // such cases. Ward off asserts in type.cpp by refusing to do 1.16 // meets between interfaces and proper classes. 1.17 - const TypeInstPtr* tiip = ti->isa_narrowoop() ? ti->is_narrowoop()->make_oopptr()->isa_instptr() : ti->isa_instptr(); 1.18 + const TypePtr* tip = ti->make_ptr(); 1.19 + const TypeInstPtr* tiip = (tip != NULL) ? tip->isa_instptr() : NULL; 1.20 if (tiip) { 1.21 bool ti_is_intf = false; 1.22 ciKlass* k = tiip->klass(); 1.23 @@ -930,13 +932,14 @@ 1.24 // class-typed Phi and an interface flows in, it's possible that the meet & 1.25 // join report an interface back out. This isn't possible but happens 1.26 // because the type system doesn't interact well with interfaces. 1.27 - const TypeInstPtr *jtip = jt->isa_narrowoop() ? jt->isa_narrowoop()->make_oopptr()->isa_instptr() : jt->isa_instptr(); 1.28 + const TypePtr *jtp = jt->make_ptr(); 1.29 + const TypeInstPtr *jtip = (jtp != NULL) ? jtp->isa_instptr() : NULL; 1.30 if( jtip && ttip ) { 1.31 if( jtip->is_loaded() && jtip->klass()->is_interface() && 1.32 ttip->is_loaded() && !ttip->klass()->is_interface() ) { 1.33 // Happens in a CTW of rt.jar, 320-341, no extra flags 1.34 assert(ft == ttip->cast_to_ptr_type(jtip->ptr()) || 1.35 - ft->isa_narrowoop() && ft->isa_narrowoop()->make_oopptr() == ttip->cast_to_ptr_type(jtip->ptr()), ""); 1.36 + ft->isa_narrowoop() && ft->make_ptr() == ttip->cast_to_ptr_type(jtip->ptr()), ""); 1.37 jt = ft; 1.38 } 1.39 }