- changed format of for loops to remove method calls
- removed other method calls
- made access to ZipEntry.DEFLATED/STORED more explicit to stop compiler
whining
- changed one javadoc

On large file sets the VM should work a little less (a few method
calls/entry) -> minor performance improvement.

Kev
Index: ZipEntry.java
===================================================================
RCS file: /home/cvspublic/ant/src/main/org/apache/tools/zip/ZipEntry.java,v
retrieving revision 1.21
diff -u -r1.21 ZipEntry.java
--- ZipEntry.java	4 Dec 2004 00:03:50 -0000	1.21
+++ ZipEntry.java	15 Dec 2004 04:20:01 -0000
@@ -20,8 +20,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Vector;
-import java.util.Date;
-import java.util.Calendar;
 import java.util.zip.ZipException;
 
 /**
@@ -259,7 +257,7 @@
     public void addExtraField(ZipExtraField ze) {
         ZipShort type = ze.getHeaderId();
         boolean done = false;
-        for (int i = 0; !done && i < extraFields.size(); i++) {
+        for (int i = 0, fieldsSize = extraFields.size(); !done && i < fieldsSize; i++) {
             if (((ZipExtraField) extraFields.elementAt(i)).getHeaderId().equals(type)) {
                 extraFields.setElementAt(ze, i);
                 done = true;
@@ -278,7 +276,7 @@
      */
     public void removeExtraField(ZipShort type) {
         boolean done = false;
-        for (int i = 0; !done && i < extraFields.size(); i++) {
+        for (int i = 0, fieldsSize = extraFields.size(); !done && i < fieldsSize; i++) {
             if (((ZipExtraField) extraFields.elementAt(i)).getHeaderId().equals(type)) {
                 extraFields.removeElementAt(i);
                 done = true;
Index: ZipOutputStream.java
===================================================================
RCS file: /home/cvspublic/ant/src/main/org/apache/tools/zip/ZipOutputStream.java,v
retrieving revision 1.30
diff -u -r1.30 ZipOutputStream.java
--- ZipOutputStream.java	4 Dec 2004 00:03:50 -0000	1.30
+++ ZipOutputStream.java	15 Dec 2004 04:20:01 -0000
@@ -89,7 +89,7 @@
      *
      * @since 1.1
      */
-    private int method = DEFLATED;
+    private int method = java.util.zip.ZipEntry.DEFLATED;
 
     /**
      * List of ZipEntries written so far.
@@ -209,14 +209,14 @@
      *
      * @since 1.1
      */
-    public static final int DEFLATED = ZipEntry.DEFLATED;
+    public static final int DEFLATED = java.util.zip.ZipEntry.DEFLATED;
 
     /**
-     * Compression method for deflated entries.
+     * Compression method for stored entries.
      *
      * @since 1.1
      */
-    public static final int STORED = ZipEntry.STORED;
+    public static final int STORED = java.util.zip.ZipEntry.STORED;
 
     /**
      * Creates a new ZIP OutputStream filtering the underlying stream.
@@ -299,7 +299,7 @@
     public void finish() throws IOException {
         closeEntry();
         cdOffset = written;
-        for (int i = 0; i < entries.size(); i++) {
+        for (int i = 0, entriesSize = entries.size(); i < entriesSize; i++) {
             writeCentralFileHeader((ZipEntry) entries.elementAt(i));
         }
         cdLength = written - cdOffset;
@@ -561,9 +561,12 @@
         writeOut(LFH_SIG);
         written += 4;
 
+        //store method in local variable to prevent multiple method calls
+        final int zipMethod = ze.getMethod();
+        
         // version needed to extract
         // general purpose bit flag
-        if (ze.getMethod() == DEFLATED && raf == null) {
+        if (zipMethod == DEFLATED && raf == null) {
             // requires version 2 as we are going to store length info
             // in the data descriptor
             writeOut(ZipShort.getBytes(20));
@@ -577,7 +580,7 @@
         written += 4;
 
         // compression method
-        writeOut(ZipShort.getBytes(ze.getMethod()));
+        writeOut(ZipShort.getBytes(zipMethod));
         written += 2;
 
         // last mod. time and date
@@ -588,7 +591,7 @@
         // compressed length
         // uncompressed length
         localDataStart = written;
-        if (ze.getMethod() == DEFLATED || raf != null) {
+        if (zipMethod == DEFLATED || raf != null) {
             writeOut(LZERO);
             writeOut(LZERO);
             writeOut(LZERO);

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to