diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java index bc46cceb0891e71932cfdcde91384bc64e36663b..3caa924bf46ae9949f857ce71ff1701b605083ec 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/unary/UnaryArithmeticReduceNode.java @@ -188,8 +188,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode { int result = semantics.getIntStart(); na.enable(operand); int opCount = 0; + int[] data = operand.getDataWithoutCopying(); for (int i = 0; i < operand.getLength(); i++) { - int d = operand.getDataAt(i); + int d = data[i]; if (na.check(d)) { if (profiledNaRm) { continue; @@ -213,8 +214,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode { double result = semantics.getDoubleStart(); na.enable(operand); int opCount = 0; + double[] data = operand.getDataWithoutCopying(); for (int i = 0; i < operand.getLength(); i++) { - double d = operand.getDataAt(i); + double d = data[i]; if (na.check(d)) { if (profiledNaRm) { continue; @@ -238,8 +240,9 @@ public abstract class UnaryArithmeticReduceNode extends UnaryNode { int result = semantics.getIntStart(); na.enable(operand); int opCount = 0; + byte[] data = operand.getDataWithoutCopying(); for (int i = 0; i < operand.getLength(); i++) { - byte d = operand.getDataAt(i); + byte d = data[i]; if (na.check(d)) { if (profiledNaRm) { continue;