From ea97f102ef78054ce0b11ee31fddc628b01b4d4a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Wed, 5 Jan 2005 20:41:27 +0000 Subject: [PATCH] ZipEntry.java (setCompressedSize): Allow any argument. * java/util/zip/ZipEntry.java (setCompressedSize): Allow any argument. (compressedSize): Now 'long'. Default to -1. (getCompressedSize): Rewrote. * java/util/zip/DeflaterOutputStream.java (deflate): Don't deflate at all if we need input. From-SVN: r92969 --- libjava/ChangeLog | 9 +++++++++ libjava/java/util/zip/DeflaterOutputStream.java | 3 +-- libjava/java/util/zip/ZipEntry.java | 12 ++++-------- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index b4f7e8edd8f..d3d419106a3 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2005-01-05 Tom Tromey + + * java/util/zip/ZipEntry.java (setCompressedSize): Allow any + argument. + (compressedSize): Now 'long'. Default to -1. + (getCompressedSize): Rewrote. + * java/util/zip/DeflaterOutputStream.java (deflate): Don't + deflate at all if we need input. + 2005-01-05 Tom Tromey PR libgcj/15719: diff --git a/libjava/java/util/zip/DeflaterOutputStream.java b/libjava/java/util/zip/DeflaterOutputStream.java index 4d84f2a3f57..d8a330d9b6a 100644 --- a/libjava/java/util/zip/DeflaterOutputStream.java +++ b/libjava/java/util/zip/DeflaterOutputStream.java @@ -79,13 +79,12 @@ public class DeflaterOutputStream extends FilterOutputStream */ protected void deflate() throws IOException { - do + while (! def.needsInput()) { int len = def.deflate(buf, 0, buf.length); if (len > 0) out.write(buf, 0, len); } - while (! def.needsInput()); } /** diff --git a/libjava/java/util/zip/ZipEntry.java b/libjava/java/util/zip/ZipEntry.java index 201a671bc15..60343277804 100644 --- a/libjava/java/util/zip/ZipEntry.java +++ b/libjava/java/util/zip/ZipEntry.java @@ -1,5 +1,5 @@ /* ZipEntry.java -- - Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -60,7 +60,7 @@ public class ZipEntry implements ZipConstants, Cloneable private String name; private int size; - private int compressedSize; + private long compressedSize = -1; private int crc; private int dostime; private short known = 0; @@ -242,14 +242,10 @@ public class ZipEntry implements ZipConstants, Cloneable /** * Sets the size of the compressed data. - * @exception IllegalArgumentException if size is not in 0..0xffffffffL */ public void setCompressedSize(long csize) { - if ((csize & 0xffffffff00000000L) != 0) - throw new IllegalArgumentException(); - this.compressedSize = (int) csize; - this.known |= KNOWN_CSIZE; + this.compressedSize = csize; } /** @@ -258,7 +254,7 @@ public class ZipEntry implements ZipConstants, Cloneable */ public long getCompressedSize() { - return (known & KNOWN_CSIZE) != 0 ? compressedSize & 0xffffffffL : -1L; + return compressedSize; } /**