### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java =================================================================== RCS file: /cvsroot/eclipse/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java,v retrieving revision 1.51 diff -u -r1.51 DoStatement.java --- compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java 3 Apr 2006 13:51:36 -0000 1.51 +++ compiler/org/eclipse/jdt/internal/compiler/ast/DoStatement.java 7 Apr 2006 17:22:33 -0000 @@ -138,7 +138,8 @@ if (action != null) actionLabel.tagBits |= BranchLabel.USED; actionLabel.place(); breakLabel.initialize(codeStream); - if (continueLabel != null) { + boolean continueLabelNotNull = continueLabel != null; + if (continueLabelNotNull) { continueLabel.initialize(codeStream); } @@ -148,19 +149,19 @@ } Constant cst = condition.optimizedBooleanConstant(); boolean isConditionOptimizedFalse = cst != Constant.NotAConstant && cst.booleanValue() == false; + if (continueLabelNotNull) { + continueLabel.place(); + } if (isConditionOptimizedFalse){ condition.generateCode(currentScope, codeStream, false); - } else { + } else if (continueLabelNotNull) { // generate condition - if (continueLabel != null) { - continueLabel.place(); - condition.generateOptimizedBoolean( - currentScope, - codeStream, - actionLabel, - null, - true); - } + condition.generateOptimizedBoolean( + currentScope, + codeStream, + actionLabel, + null, + true); } // May loose some local variable initializations : affecting the local variable attributes if (mergedInitStateIndex != -1) {