# HG changeset patch # User Gilles Duboscq # Date 1401104606 -7200 # Node ID 1dcc7ae727234625f96090d900f3e648f1075727 # Parent 0ad889977080c970e08c729389feb01e63e8d500 InvokeNode: getAnnotation is dangerous diff -r 0ad889977080 -r 1dcc7ae72723 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Thu May 29 14:44:43 2014 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java Mon May 26 13:43:26 2014 +0200 @@ -96,12 +96,15 @@ @Override public boolean isAllowedUsageType(InputType type) { - if (getKind() != Kind.Void) { - if (callTarget instanceof MethodCallTargetNode && ((MethodCallTargetNode) callTarget).targetMethod().getAnnotation(NodeIntrinsic.class) != null) { - return true; + if (!super.isAllowedUsageType(type)) { + if (getKind() != Kind.Void) { + if (callTarget instanceof MethodCallTargetNode && ((MethodCallTargetNode) callTarget).targetMethod().getAnnotation(NodeIntrinsic.class) != null) { + return true; + } } + return false; } - return super.isAllowedUsageType(type); + return true; } @Override