# HG changeset patch # User Christian Haeubl # Date 1329256823 28800 # Node ID 82fc1c96f705fcdab4ba450cd6a94656e8c21c87 # Parent eb6df44a13743e3c50428490438d87d1bb569832# Parent 1827e00c87b9a55a2c62c735056ae8bb6ba63066 Merge diff -r eb6df44a1374 -r 82fc1c96f705 graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java --- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java Tue Feb 14 13:53:25 2012 -0800 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java Tue Feb 14 14:00:23 2012 -0800 @@ -133,16 +133,10 @@ if (!isStatic()) { ValueNode receiver = receiver(); if (receiver != null && receiver.exactType() != null) { - if (invokeKind == InvokeKind.Interface) { + if (invokeKind == InvokeKind.Interface || invokeKind == InvokeKind.Virtual) { RiResolvedMethod method = receiver.exactType().resolveMethodImpl(targetMethod); if (method != null) { - invokeKind = InvokeKind.Virtual; - targetMethod = method; - } - } - if (receiver.isConstant() && invokeKind == InvokeKind.Virtual) { - RiResolvedMethod method = receiver.exactType().resolveMethodImpl(targetMethod); - if (method != null) { + invokeKind = InvokeKind.Special; targetMethod = method; }