From 73e22b9d37f72c3cf1e6a277813bdfbef2cc7a80 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Wed, 15 Dec 2004 08:14:08 +0000 Subject: [PATCH] Loop optimization, Submitted by Kevin Jackson git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277206 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/zip/ZipEntry.java | 6 ++---- .../org/apache/tools/zip/ZipOutputStream.java | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/main/org/apache/tools/zip/ZipEntry.java b/src/main/org/apache/tools/zip/ZipEntry.java index 7e03cee16..e2ec555c8 100644 --- a/src/main/org/apache/tools/zip/ZipEntry.java +++ b/src/main/org/apache/tools/zip/ZipEntry.java @@ -20,8 +20,6 @@ package org.apache.tools.zip; 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 class ZipEntry extends java.util.zip.ZipEntry implements Cloneable { 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 class ZipEntry extends java.util.zip.ZipEntry implements Cloneable { */ 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; diff --git a/src/main/org/apache/tools/zip/ZipOutputStream.java b/src/main/org/apache/tools/zip/ZipOutputStream.java index cd262503d..895eb2a2f 100644 --- a/src/main/org/apache/tools/zip/ZipOutputStream.java +++ b/src/main/org/apache/tools/zip/ZipOutputStream.java @@ -89,7 +89,7 @@ public class ZipOutputStream extends FilterOutputStream { * * @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 @@ public class ZipOutputStream extends FilterOutputStream { * * @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 class ZipOutputStream extends FilterOutputStream { 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 @@ public class ZipOutputStream extends FilterOutputStream { 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 @@ public class ZipOutputStream extends FilterOutputStream { written += 4; // compression method - writeOut(ZipShort.getBytes(ze.getMethod())); + writeOut(ZipShort.getBytes(zipMethod)); written += 2; // last mod. time and date @@ -588,7 +591,7 @@ public class ZipOutputStream extends FilterOutputStream { // compressed length // uncompressed length localDataStart = written; - if (ze.getMethod() == DEFLATED || raf != null) { + if (zipMethod == DEFLATED || raf != null) { writeOut(LZERO); writeOut(LZERO); writeOut(LZERO);