comparison graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java @ 18244:691e2b53dc63

Merge.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 30 Jul 2014 22:28:09 +0200
parents bb2c3f570e26 4bfe1359d98a
children 34cb95edfc97
comparison
equal deleted inserted replaced
18238:4221c8332c34 18244:691e2b53dc63
111 } 111 }
112 112
113 // check if the type of the receiver can narrow the result 113 // check if the type of the receiver can narrow the result
114 ValueNode receiver = receiver(); 114 ValueNode receiver = receiver();
115 ResolvedJavaType type = StampTool.typeOrNull(receiver); 115 ResolvedJavaType type = StampTool.typeOrNull(receiver);
116 if (type == null && invokeKind == InvokeKind.Virtual) {
117 // For virtual calls, we are guaranteed to receive a correct receiver type.
118 type = targetMethod.getDeclaringClass();
119 }
116 if (type != null && (invoke().stateAfter() != null || invoke().stateDuring() != null)) { 120 if (type != null && (invoke().stateAfter() != null || invoke().stateDuring() != null)) {
117 /* 121 /*
118 * either the holder class is exact, or the receiver object has an exact type, or 122 * either the holder class is exact, or the receiver object has an exact type, or
119 * it's an array type 123 * it's an array type
120 */ 124 */