Remove use of instruction pointers in ArrayConstructionSimplifier
Bug: b/391417819
Change-Id: Ibac54efa132e841a66158f5b150686583b6ce263
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
index ff7a0ad..4bdf306 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.graph.DexTypeUtils;
import com.android.tools.r8.ir.code.ArrayPut;
import com.android.tools.r8.ir.code.BasicBlock;
+import com.android.tools.r8.ir.code.BasicBlockInstructionIterator;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InstructionListIterator;
@@ -235,9 +236,10 @@
return false;
}
}
- for (Instruction instruction = lastArrayPut.getBlock().getLastInstruction();
+ BasicBlockInstructionIterator iterator = lastArrayPutBlock.iterator(lastArrayPutBlock.size());
+ for (Instruction instruction = iterator.previous();
instruction != lastArrayPut;
- instruction = instruction.getPrev()) {
+ instruction = iterator.previous()) {
if (instruction.isArrayPut() && instruction.asArrayPut().array() == arrayValue) {
return false;
}