From b5f820cf698ebd10decedc22a6796edc933b894e Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 11 Feb 2013 16:47:16 +0400 Subject: [PATCH] Prepared for extracting superclass. --- .../org/jetbrains/jet/codegen/ExpressionCodegen.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 0cd31080278..4cf71afd19d 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -797,7 +797,7 @@ public class ExpressionCodegen extends JetVisitor implem private class ForInRangeLiteralLoopGenerator extends AbstractForLoopGenerator { private final RangeCodegenUtil.BinaryCall rangeCall; - private int lastVar; + protected int endVar; private ForInRangeLiteralLoopGenerator( @NotNull JetForExpression forExpression, @@ -811,18 +811,22 @@ public class ExpressionCodegen extends JetVisitor implem public void beforeLoop() { super.beforeLoop(); + endVar = createLoopTempVariable(asmElementType); + storeRangeStartAndEnd(); + } + + protected void storeRangeStartAndEnd() { gen(rangeCall.left, asmElementType); v.store(loopParameterVar, asmElementType); - lastVar = createLoopTempVariable(asmElementType); gen(rangeCall.right, asmElementType); - v.store(lastVar, asmElementType); + v.store(endVar, asmElementType); } @Override public void conditionAndJump(@NotNull Label loopExit) { v.load(loopParameterVar, asmElementType); - v.load(lastVar, asmElementType); + v.load(endVar, asmElementType); int sort = asmElementType.getSort(); switch (sort) {