changeset 15976:1dcc7ae72723

InvokeNode: getAnnotation is dangerous
author Gilles Duboscq <duboscq@ssw.jku.at>
date Mon, 26 May 2014 13:43:26 +0200
parents 0ad889977080
children eff84c561a95
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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