Skip to content

Commit 73fcbfd

Browse files
committed
bug 59773: move loop invariants outside of loop or change for loops to for-each loops
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751086 13f79535-47bb-0310-9956-ffa450edef68
1 parent e7eef4d commit 73fcbfd

File tree

13 files changed

+53
-37
lines changed

13 files changed

+53
-37
lines changed

src/java/org/apache/poi/hssf/usermodel/HSSFName.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ public void setNameName(String nameName){
135135
int sheetNumber = _definedNameRec.getSheetNumber();
136136

137137
//Check to ensure no other names have the same case-insensitive name
138-
for ( int i = wb.getNumNames()-1; i >=0; i-- )
138+
final int lastNameIndex = wb.getNumNames()-1;
139+
for ( int i = lastNameIndex; i >=0; i-- )
139140
{
140141
NameRecord rec = wb.getNameRecord(i);
141142
if (rec != _definedNameRec) {

src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1640,7 +1640,8 @@ public void shiftRows(int startRow, int endRow, int n,
16401640
if (moveComments) {
16411641
// This code would get simpler if NoteRecords could be organised by HSSFRow.
16421642
HSSFPatriarch patriarch = createDrawingPatriarch();
1643-
for (int i = patriarch.getChildren().size() - 1; i >= 0; i--) {
1643+
final int lastChildIndex = patriarch.getChildren().size() - 1;
1644+
for (int i = lastChildIndex; i >= 0; i--) {
16441645
HSSFShape shape = patriarch.getChildren().get(i);
16451646
if (!(shape instanceof HSSFComment)) {
16461647
continue;
@@ -2372,7 +2373,9 @@ public HSSFAutoFilter setAutoFilter(CellRangeAddress range) {
23722373

23732374
//create a combobox control for each column
23742375
HSSFPatriarch p = createDrawingPatriarch();
2375-
for (int col = range.getFirstColumn(); col <= range.getLastColumn(); col++) {
2376+
final int firstColumn = range.getFirstColumn();
2377+
final int lastColumn = range.getLastColumn();
2378+
for (int col = firstColumn; col <= lastColumn; col++) {
23762379
p.createComboBox(new HSSFClientAnchor(0, 0, 0, 0,
23772380
(short) col, firstRow, (short) (col + 1), firstRow + 1));
23782381
}

src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePartName.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,8 @@ private static void throwExceptionIfPartNameHaveInvalidSegments(URI partUri)
289289
private static void checkPCharCompliance(String segment)
290290
throws InvalidFormatException {
291291
boolean errorFlag;
292-
for (int i = 0; i < segment.length(); ++i) {
292+
final int length = segment.length();
293+
for (int i = 0; i < length; ++i) {
293294
char c = segment.charAt(i);
294295
errorFlag = true;
295296

@@ -328,7 +329,7 @@ private static void checkPCharCompliance(String segment)
328329
if (errorFlag && c == '%') {
329330
// We certainly found an encoded character, check for length
330331
// now ( '%' HEXDIGIT HEXDIGIT)
331-
if (((segment.length() - i) < 2)) {
332+
if (((length - i) < 2)) {
332333
throw new InvalidFormatException("The segment " + segment
333334
+ " contain invalid encoded character !");
334335
}

src/ooxml/java/org/apache/poi/openxml4j/opc/PackagingURIHelper.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -606,12 +606,13 @@ public static String decodeURI(URI uri) {
606606
StringBuffer retVal = new StringBuffer();
607607
String uriStr = uri.toASCIIString();
608608
char c;
609-
for (int i = 0; i < uriStr.length(); ++i) {
609+
final int length = uriStr.length();
610+
for (int i = 0; i < length; ++i) {
610611
c = uriStr.charAt(i);
611612
if (c == '%') {
612613
// We certainly found an encoded character, check for length
613614
// now ( '%' HEXDIGIT HEXDIGIT)
614-
if (((uriStr.length() - i) < 2)) {
615+
if (((length - i) < 2)) {
615616
throw new IllegalArgumentException("The uri " + uriStr
616617
+ " contain invalid encoded character !");
617618
}

src/ooxml/java/org/apache/poi/xdgf/geom/SplineRenderer.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,17 @@ public static ShapeMultiPath createNurbsSpline(ControlPath controlPoints,
3030
ValueVector knots, ValueVector weights, int degree) {
3131

3232
double firstKnot = knots.get(0);
33-
double lastKnot = knots.get(knots.size() - 1);
33+
final int count = knots.size();
34+
double lastKnot = knots.get(count - 1);
3435

3536
// scale knots to [0, 1] based on first/last knots
36-
for (int i = 0; i < knots.size(); i++) {
37+
for (int i = 0; i < count; i++) {
3738
knots.set((knots.get(i) - firstKnot) / lastKnot, i);
3839
}
3940

4041
// if we don't have enough knots, duplicate the last knot until we do
41-
for (int i = knots.size(); i < controlPoints.numPoints() + degree + 1; i++) {
42+
final int knotsToAdd = controlPoints.numPoints() + degree + 1;
43+
for (int i = count; i < knotsToAdd; i++) {
4244
knots.add(1);
4345
}
4446

src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Licensed to the Apache Software Foundation (ASF) under one or more
3030
import org.apache.poi.ss.usermodel.DataFormatter;
3131
import org.apache.poi.ss.usermodel.HeaderFooter;
3232
import org.apache.poi.ss.usermodel.Row;
33+
import org.apache.poi.ss.usermodel.Sheet;
3334
import org.apache.poi.xssf.usermodel.XSSFCell;
3435
import org.apache.poi.xssf.usermodel.XSSFDrawing;
3536
import org.apache.poi.xssf.usermodel.XSSFRelation;
@@ -134,10 +135,10 @@ public String getText() {
134135
}
135136

136137
StringBuffer text = new StringBuffer();
137-
for(int i=0; i<workbook.getNumberOfSheets(); i++) {
138-
XSSFSheet sheet = workbook.getSheetAt(i);
138+
for(Sheet sh : workbook) {
139+
XSSFSheet sheet = (XSSFSheet) sh;
139140
if(includeSheetNames) {
140-
text.append(workbook.getSheetName(i)).append("\n");
141+
text.append(sheet.getSheetName()).append("\n");
141142
}
142143

143144
// Header(s), if present

src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,8 @@ public SXSSFWorkbook(XSSFWorkbook workbook, int rowAccessWindowSize, boolean com
239239
{
240240
_wb=workbook;
241241
_sharedStringSource = useSharedStringsTable ? _wb.getSharedStringSource() : null;
242-
for ( int i = 0; i < _wb.getNumberOfSheets(); i++ )
242+
final int numberOfSheets = _wb.getNumberOfSheets();
243+
for ( int i = 0; i < numberOfSheets; i++ )
243244
{
244245
XSSFSheet sheet = _wb.getSheetAt( i );
245246
createAndRegisterSXSSFSheet( sheet );

src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFEvaluationWorkbook.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@ public int getSheetIndex(EvaluationSheet evalSheet) {
5050
public EvaluationSheet getSheet(int sheetIndex) {
5151
// Performance optimization: build sheet cache the first time this is called
5252
// to avoid re-creating the XSSFEvaluationSheet each time a new cell is evaluated
53-
// EvaluationWorkbooks make not guarentee to syncronize changes made to
53+
// EvaluationWorkbooks make not guarantee to synchronize changes made to
5454
// the underlying workbook after the EvaluationWorkbook is created.
5555
if (_sheetCache == null) {
56-
_sheetCache = new XSSFEvaluationSheet[_uBook.getNumberOfSheets()];
57-
for (int i=0; i < _uBook.getNumberOfSheets(); i++) {
56+
final int numberOfSheets = _uBook.getNumberOfSheets();
57+
_sheetCache = new XSSFEvaluationSheet[numberOfSheets];
58+
for (int i=0; i < numberOfSheets; i++) {
5859
_sheetCache[i] = new XSSFEvaluationSheet(_uBook.getSheetAt(i));
5960
}
6061
}

src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFRichTextString.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -379,18 +379,17 @@ public XSSFFont getFontOfFormattingRun(int index) {
379379
* index is out of range.
380380
*/
381381
public XSSFFont getFontAtIndex( int index ) {
382-
if(st.sizeOfRArray() == 0) return null;
383-
382+
final ThemesTable themes = getThemesTable();
384383
int pos = 0;
385-
for(int i = 0; i < st.sizeOfRArray(); i++){
386-
CTRElt r = st.getRArray(i);
387-
if(index >= pos && index < pos + r.getT().length()) {
384+
for(CTRElt r : st.getRArray()){
385+
final int length = r.getT().length();
386+
if(index >= pos && index < pos + length) {
388387
XSSFFont fnt = new XSSFFont(toCTFont(r.getRPr()));
389-
fnt.setThemesTable(getThemesTable());
388+
fnt.setThemesTable(themes);
390389
return fnt;
391390
}
392391

393-
pos += r.getT().length();
392+
pos += length;
394393
}
395394
return null;
396395

src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2674,7 +2674,8 @@ private void expandRow(int rowNumber) {
26742674
public int findEndOfRowOutlineGroup(int row) {
26752675
short level = getRow(row).getCTRow().getOutlineLevel();
26762676
int currentRow;
2677-
for (currentRow = row; currentRow < getLastRowNum(); currentRow++) {
2677+
final int lastRowNum = getLastRowNum();
2678+
for (currentRow = row; currentRow < lastRowNum; currentRow++) {
26782679
if (getRow(currentRow) == null
26792680
|| getRow(currentRow).getCTRow().getOutlineLevel() < level) {
26802681
break;

0 commit comments

Comments
 (0)