Lines 138-144
Link Here
|
138 |
if (action != null) actionLabel.tagBits |= BranchLabel.USED; |
138 |
if (action != null) actionLabel.tagBits |= BranchLabel.USED; |
139 |
actionLabel.place(); |
139 |
actionLabel.place(); |
140 |
breakLabel.initialize(codeStream); |
140 |
breakLabel.initialize(codeStream); |
141 |
if (continueLabel != null) { |
141 |
boolean continueLabelNotNull = continueLabel != null; |
|
|
142 |
if (continueLabelNotNull) { |
142 |
continueLabel.initialize(codeStream); |
143 |
continueLabel.initialize(codeStream); |
143 |
} |
144 |
} |
144 |
|
145 |
|
Lines 148-166
Link Here
|
148 |
} |
149 |
} |
149 |
Constant cst = condition.optimizedBooleanConstant(); |
150 |
Constant cst = condition.optimizedBooleanConstant(); |
150 |
boolean isConditionOptimizedFalse = cst != Constant.NotAConstant && cst.booleanValue() == false; |
151 |
boolean isConditionOptimizedFalse = cst != Constant.NotAConstant && cst.booleanValue() == false; |
|
|
152 |
if (continueLabelNotNull) { |
153 |
continueLabel.place(); |
154 |
} |
151 |
if (isConditionOptimizedFalse){ |
155 |
if (isConditionOptimizedFalse){ |
152 |
condition.generateCode(currentScope, codeStream, false); |
156 |
condition.generateCode(currentScope, codeStream, false); |
153 |
} else { |
157 |
} else if (continueLabelNotNull) { |
154 |
// generate condition |
158 |
// generate condition |
155 |
if (continueLabel != null) { |
159 |
condition.generateOptimizedBoolean( |
156 |
continueLabel.place(); |
160 |
currentScope, |
157 |
condition.generateOptimizedBoolean( |
161 |
codeStream, |
158 |
currentScope, |
162 |
actionLabel, |
159 |
codeStream, |
163 |
null, |
160 |
actionLabel, |
164 |
true); |
161 |
null, |
|
|
162 |
true); |
163 |
} |
164 |
} |
165 |
} |
165 |
// May loose some local variable initializations : affecting the local variable attributes |
166 |
// May loose some local variable initializations : affecting the local variable attributes |
166 |
if (mergedInitStateIndex != -1) { |
167 |
if (mergedInitStateIndex != -1) { |