Mercurial > hg > truffle
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) {