View | Details | Raw Unified | Return to bug 135602 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java (-11 / +12 lines)
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) {

Return to bug 135602