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
This commit is contained in:
Tom Tromey 2005-01-05 20:41:27 +00:00 committed by Tom Tromey
parent d2ad2c8a9c
commit ea97f102ef
3 changed files with 14 additions and 10 deletions

View File

@ -1,3 +1,12 @@
2005-01-05 Tom Tromey <tromey@redhat.com>
* 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 <tromey@redhat.com> 2005-01-05 Tom Tromey <tromey@redhat.com>
PR libgcj/15719: PR libgcj/15719:

View File

@ -79,13 +79,12 @@ public class DeflaterOutputStream extends FilterOutputStream
*/ */
protected void deflate() throws IOException protected void deflate() throws IOException
{ {
do while (! def.needsInput())
{ {
int len = def.deflate(buf, 0, buf.length); int len = def.deflate(buf, 0, buf.length);
if (len > 0) if (len > 0)
out.write(buf, 0, len); out.write(buf, 0, len);
} }
while (! def.needsInput());
} }
/** /**

View File

@ -1,5 +1,5 @@
/* ZipEntry.java -- /* 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. This file is part of GNU Classpath.
@ -60,7 +60,7 @@ public class ZipEntry implements ZipConstants, Cloneable
private String name; private String name;
private int size; private int size;
private int compressedSize; private long compressedSize = -1;
private int crc; private int crc;
private int dostime; private int dostime;
private short known = 0; private short known = 0;
@ -242,14 +242,10 @@ public class ZipEntry implements ZipConstants, Cloneable
/** /**
* Sets the size of the compressed data. * Sets the size of the compressed data.
* @exception IllegalArgumentException if size is not in 0..0xffffffffL
*/ */
public void setCompressedSize(long csize) public void setCompressedSize(long csize)
{ {
if ((csize & 0xffffffff00000000L) != 0) this.compressedSize = csize;
throw new IllegalArgumentException();
this.compressedSize = (int) csize;
this.known |= KNOWN_CSIZE;
} }
/** /**
@ -258,7 +254,7 @@ public class ZipEntry implements ZipConstants, Cloneable
*/ */
public long getCompressedSize() public long getCompressedSize()
{ {
return (known & KNOWN_CSIZE) != 0 ? compressedSize & 0xffffffffL : -1L; return compressedSize;
} }
/** /**