equal
deleted
inserted
replaced
831 return (Node*) this; |
831 return (Node*) this; |
832 } |
832 } |
833 |
833 |
834 //---------------------------uncast_helper------------------------------------- |
834 //---------------------------uncast_helper------------------------------------- |
835 Node* Node::uncast_helper(const Node* p) { |
835 Node* Node::uncast_helper(const Node* p) { |
836 uint max_depth = 3; |
836 #ifdef ASSERT |
837 for (uint i = 0; i < max_depth; i++) { |
837 uint depth_count = 0; |
|
838 const Node* orig_p = p; |
|
839 #endif |
|
840 |
|
841 while (true) { |
|
842 #ifdef ASSERT |
|
843 if (depth_count >= K) { |
|
844 orig_p->dump(4); |
|
845 if (p != orig_p) |
|
846 p->dump(1); |
|
847 } |
|
848 assert(depth_count++ < K, "infinite loop in Node::uncast_helper"); |
|
849 #endif |
838 if (p == NULL || p->req() != 2) { |
850 if (p == NULL || p->req() != 2) { |
839 break; |
851 break; |
840 } else if (p->is_ConstraintCast()) { |
852 } else if (p->is_ConstraintCast()) { |
841 p = p->in(1); |
853 p = p->in(1); |
842 } else if (p->is_CheckCastPP()) { |
854 } else if (p->is_CheckCastPP()) { |