1.1 --- a/src/share/vm/opto/cfgnode.cpp Wed Jul 16 10:08:57 2008 -0700 1.2 +++ b/src/share/vm/opto/cfgnode.cpp Wed Jul 16 16:04:39 2008 -0700 1.3 @@ -713,7 +713,9 @@ 1.4 assert(type() == Type::MEMORY && 1.5 (t == TypePtr::BOTTOM || t == TypeRawPtr::BOTTOM || 1.6 t->isa_oopptr() && !t->is_oopptr()->is_known_instance() && 1.7 - t->is_oopptr()->cast_to_instance_id(t_oop->instance_id()) == t_oop), 1.8 + t->is_oopptr()->cast_to_exactness(true) 1.9 + ->is_oopptr()->cast_to_ptr_type(t_oop->ptr()) 1.10 + ->is_oopptr()->cast_to_instance_id(t_oop->instance_id()) == t_oop), 1.11 "bottom or raw memory required"); 1.12 1.13 // Check if an appropriate node already exists. 1.14 @@ -1089,6 +1091,8 @@ 1.15 if (rc == NULL || phase->type(rc) == Type::TOP) 1.16 continue; // ignore unreachable control path 1.17 Node* n = in(i); 1.18 + if (n == NULL) 1.19 + continue; 1.20 Node* un = n->uncast(); 1.21 if (un == NULL || un == this || phase->type(un) == Type::TOP) { 1.22 continue; // ignore if top, or in(i) and "this" are in a data cycle