Mercurial > hg > truffle
diff src/share/vm/opto/callnode.cpp @ 4778:35acf8f0a2e4
7128352: assert(obj_node == obj) failed
Summary: Compare uncasted object nodes.
Reviewed-by: never
author | kvn |
---|---|
date | Tue, 10 Jan 2012 18:05:38 -0800 |
parents | e9a5e0a812c8 |
children | b0ff910edfc9 |
line wrap: on
line diff
--- a/src/share/vm/opto/callnode.cpp Sat Jan 07 13:26:43 2012 -0800 +++ b/src/share/vm/opto/callnode.cpp Tue Jan 10 18:05:38 2012 -0800 @@ -1386,7 +1386,7 @@ Node *n = ctrl_proj->in(0); if (n != NULL && n->is_Unlock()) { UnlockNode *unlock = n->as_Unlock(); - if ((lock->obj_node() == unlock->obj_node()) && + if (lock->obj_node()->eqv_uncast(unlock->obj_node()) && BoxLockNode::same_slot(lock->box_node(), unlock->box_node()) && !unlock->is_eliminated()) { lock_ops.append(unlock); @@ -1431,7 +1431,7 @@ } if (ctrl->is_Lock()) { LockNode *lock = ctrl->as_Lock(); - if ((lock->obj_node() == unlock->obj_node()) && + if (lock->obj_node()->eqv_uncast(unlock->obj_node()) && BoxLockNode::same_slot(lock->box_node(), unlock->box_node())) { lock_result = lock; } @@ -1462,7 +1462,7 @@ } if (lock1_node != NULL && lock1_node->is_Lock()) { LockNode *lock1 = lock1_node->as_Lock(); - if ((lock->obj_node() == lock1->obj_node()) && + if (lock->obj_node()->eqv_uncast(lock1->obj_node()) && BoxLockNode::same_slot(lock->box_node(), lock1->box_node()) && !lock1->is_eliminated()) { lock_ops.append(lock1); @@ -1650,7 +1650,7 @@ for (int idx = 0; idx < num_mon; idx++) { Node* obj_node = sfn->monitor_obj(jvms, idx); BoxLockNode* box_node = BoxLockNode::box_node(sfn->monitor_box(jvms, idx)); - if ((obj_node == obj) && (box_node->stack_slot() < stk_slot)) { + if ((box_node->stack_slot() < stk_slot) && obj_node->eqv_uncast(obj)) { return true; } }