changeset 19118:036c0b9bd4f5

Merge.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Wed, 04 Feb 2015 03:22:41 +0100
parents 4f30f1e7e1e6 (current diff) 02bfa2747729 (diff)
children a5f47cb74b1b
files graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugins.java
diffstat 2 files changed, 15 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Wed Feb 04 03:19:37 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Wed Feb 04 03:22:41 2015 +0100
@@ -781,19 +781,7 @@
                         InvocationPlugin plugin = graphBuilderPlugins.lookupInvocation(targetMethod);
                         if (plugin != null) {
                             int beforeStackSize = frameState.stackSize;
-                            boolean handled;
-                            if (args.length == 0) {
-                                handled = plugin.apply(this);
-                            } else if (args.length == 1) {
-                                handled = plugin.apply(this, args[0]);
-                            } else if (args.length == 2) {
-                                handled = plugin.apply(this, args[0], args[1]);
-                            } else if (args.length == 3) {
-                                handled = plugin.apply(this, args[0], args[1], args[2]);
-                            } else {
-                                throw GraalInternalError.shouldNotReachHere();
-                            }
-                            if (handled) {
+                            if (plugin.apply(this, args)) {
                                 assert beforeStackSize + resultType.getSlotCount() == frameState.stackSize;
                                 return;
                             }
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugins.java	Wed Feb 04 03:19:37 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugins.java	Wed Feb 04 03:22:41 2015 +0100
@@ -85,6 +85,20 @@
             throw invalidHandler(builder, arg1, arg2, arg3);
         }
 
+        default boolean apply(GraphBuilderContext builder, ValueNode[] args) {
+            if (args.length == 0) {
+                return apply(builder);
+            } else if (args.length == 1) {
+                return apply(builder, args[0]);
+            } else if (args.length == 2) {
+                return apply(builder, args[0], args[1]);
+            } else if (args.length == 3) {
+                return apply(builder, args[0], args[1], args[2]);
+            } else {
+                throw invalidHandler(builder, args);
+            }
+        }
+
         default Error invalidHandler(@SuppressWarnings("unused") GraphBuilderContext builder, ValueNode... args) {
             return new GraalInternalError("Invocation plugin %s does not handle invocations with %d arguments", getClass().getSimpleName(), args.length);
         }