changeset 22481:48c212309281

Merge
author Christian Wimmer <christian.wimmer@oracle.com>
date Fri, 28 Aug 2015 11:25:42 -0700
parents f5fee32d3d6e (current diff) f9a6a2f0b414 (diff)
children da68ca58b271
files
diffstat 1 files changed, 18 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/Assumptions.java	Fri Aug 28 15:07:43 2015 +0200
+++ b/jvmci/jdk.internal.jvmci.meta/src/jdk/internal/jvmci/meta/Assumptions.java	Fri Aug 28 11:25:42 2015 -0700
@@ -72,6 +72,24 @@
             System.arraycopy(other.assumptions, 0, newAssumptions, this.assumptions.length, other.assumptions.length);
             this.assumptions = newAssumptions;
         }
+
+        public boolean canRecordTo(Assumptions target) {
+            /*
+             * We can use the result if it is either assumption free, or if we have a valid
+             * Assumptions object where we can record assumptions.
+             */
+            return assumptions.length == 0 || target != null;
+        }
+
+        public void recordTo(Assumptions target) {
+            assert canRecordTo(target);
+
+            if (assumptions.length > 0) {
+                for (Assumption assumption : assumptions) {
+                    target.record(assumption);
+                }
+            }
+        }
     }
 
     /**
@@ -348,12 +366,6 @@
         record(new ConcreteMethod(method, context, impl));
     }
 
-    public void record(AssumptionResult<?> result) {
-        for (Assumption assumption : result.assumptions) {
-            record(assumption);
-        }
-    }
-
     public void record(Assumption assumption) {
         assumptions.add(assumption);
     }