Browse Source

Loop optimization, Submitted by Kevin Jackson

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277206 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 20 years ago
parent
commit
73e22b9d37
2 changed files with 13 additions and 12 deletions
  1. +2
    -4
      src/main/org/apache/tools/zip/ZipEntry.java
  2. +11
    -8
      src/main/org/apache/tools/zip/ZipOutputStream.java

+ 2
- 4
src/main/org/apache/tools/zip/ZipEntry.java View File

@@ -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;


+ 11
- 8
src/main/org/apache/tools/zip/ZipOutputStream.java View File

@@ -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);


Loading…
Cancel
Save