changeset 15237:d49a8fe10727

Fix a regression in ArrayLengthNode.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 18 Apr 2014 15:19:06 +0200
parents c8d4ace5b78c
children 055fc67643a2 2a8628bc6c10
files graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java
diffstat 1 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java	Fri Apr 18 14:14:48 2014 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ArrayLengthNode.java	Fri Apr 18 15:19:06 2014 +0200
@@ -63,11 +63,16 @@
     public static ValueNode readArrayLength(StructuredGraph graph, ValueNode originalArray, ConstantReflectionProvider constantReflection) {
         ArrayLengthProvider foundArrayLengthProvider = null;
         ValueNode result = originalArray;
-        while (result instanceof ValueProxy) {
+        while (true) {
             if (result instanceof ArrayLengthProvider) {
                 foundArrayLengthProvider = (ArrayLengthProvider) result;
+                break;
             }
-            result = ((ValueProxy) result).getOriginalNode();
+            if (result instanceof ValueProxy) {
+                result = ((ValueProxy) result).getOriginalNode();
+            } else {
+                break;
+            }
         }
 
         if (foundArrayLengthProvider != null) {