Mercurial > hg > graal-compiler
diff graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java @ 4594:eb6df44a1374
bugfixes, added bytecode complexity estimation
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Tue, 14 Feb 2012 13:53:25 -0800 |
parents | cd2b68ef8e23 |
children | 82fc1c96f705 |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java Tue Feb 14 10:21:38 2012 -0800 +++ b/graal/com.oracle.max.graal.nodes/src/com/oracle/max/graal/nodes/java/MethodCallTargetNode.java Tue Feb 14 13:53:25 2012 -0800 @@ -134,12 +134,18 @@ ValueNode receiver = receiver(); if (receiver != null && receiver.exactType() != null) { if (invokeKind == InvokeKind.Interface) { - invokeKind = InvokeKind.Virtual; - targetMethod = receiver.exactType().resolveMethodImpl(targetMethod); + RiResolvedMethod method = receiver.exactType().resolveMethodImpl(targetMethod); + if (method != null) { + invokeKind = InvokeKind.Virtual; + targetMethod = method; + } } if (receiver.isConstant() && invokeKind == InvokeKind.Virtual) { - invokeKind = InvokeKind.Special; - targetMethod = receiver.exactType().resolveMethodImpl(targetMethod); + RiResolvedMethod method = receiver.exactType().resolveMethodImpl(targetMethod); + if (method != null) { + invokeKind = InvokeKind.Special; + targetMethod = method; + } } } }