]> source.dussan.org Git - poi.git/commitdiff
fix O(n^2) runtime unnecessarily recreating an array inside a for-loop
authorJaven O'Neal <onealj@apache.org>
Sun, 31 Jan 2016 12:14:55 +0000 (12:14 +0000)
committerJaven O'Neal <onealj@apache.org>
Sun, 31 Jan 2016 12:14:55 +0000 (12:14 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1727800 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/EscherAggregate.java

index 21c4db4542c4727419b54520aebc1d5e11cab0a8..36215b79c3c9a70b0de7f673add1f640d91baf7e 100644 (file)
@@ -301,7 +301,7 @@ public final class EscherAggregate extends AbstractEscherHolderRecord {
     /**
      * list of "tail" records that need to be serialized after all drawing group records
      */
-    private Map<Integer, NoteRecord> tailRec = new LinkedHashMap<Integer, NoteRecord>();
+    private final Map<Integer, NoteRecord> tailRec = new LinkedHashMap<Integer, NoteRecord>();
 
     /**
      * create new EscherAggregate
@@ -522,8 +522,8 @@ public final class EscherAggregate extends AbstractEscherHolderRecord {
             pos += writeDataIntoDrawingRecord(drawingData, writtenEscherBytes, pos, data, i);
         }
 
-        for (i = 0; i < tailRec.size(); i++) {
-            Record rec = (Record) tailRec.values().toArray()[i];
+        for (NoteRecord noteRecord : tailRec.values()) {
+            Record rec = (Record) noteRecord;
             pos += rec.serialize(pos, data);
         }
         int bytesWritten = pos - offset;