diff options
author | mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-27 11:02:44 +0000 |
---|---|---|
committer | mark <mark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-27 11:02:44 +0000 |
commit | 30bb507e998ba2369312fc89fed31d05c9e1d05c (patch) | |
tree | 925879ccbf56ae0aba32d61adcf4d4d421adde0a /libjava/java/util/zip/DeflaterOutputStream.java | |
parent | ec96de93a5e8117a86cb6c7d50b45026a2416557 (diff) | |
download | ppe42-gcc-30bb507e998ba2369312fc89fed31d05c9e1d05c.tar.gz ppe42-gcc-30bb507e998ba2369312fc89fed31d05c9e1d05c.zip |
Reported by Helmer Kraemer <hkraemer@freenet.de>
* java/util/jar/JarInputStream.java (readManifest): Don't call
closeEntry().
* java/util/zip/DeflaterOutputStream.java (inbufWrite): New method.
(finish): Use inbufWrite().
(write(int)): Likewise.
(write(byte[],int,int)): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72976 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/util/zip/DeflaterOutputStream.java')
-rw-r--r-- | libjava/java/util/zip/DeflaterOutputStream.java | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/libjava/java/util/zip/DeflaterOutputStream.java b/libjava/java/util/zip/DeflaterOutputStream.java index ff66b080f9e..6a4fa95886b 100644 --- a/libjava/java/util/zip/DeflaterOutputStream.java +++ b/libjava/java/util/zip/DeflaterOutputStream.java @@ -127,12 +127,7 @@ public class DeflaterOutputStream extends FilterOutputStream */ public void finish () throws IOException { - if (inbufLength > 0) - { - def.setInput (inbuf, 0, inbufLength); - deflate (); - inbufLength = 0; - } + inbufWrite(); def.finish(); while (! def.finished ()) { @@ -145,28 +140,27 @@ public class DeflaterOutputStream extends FilterOutputStream public void write (int bval) throws IOException { if (inbuf == null) - { - inbuf = new byte[128]; - } + inbuf = new byte[128]; else if (inbufLength == inbuf.length) - { - def.setInput (inbuf, 0, inbufLength); - deflate (); - inbufLength = 0; - } + inbufWrite (); inbuf[inbufLength++] = (byte) bval; } public void write (byte[] buf, int off, int len) throws IOException { + inbufWrite (); + def.setInput (buf, off, len); + deflate (); + } + + private void inbufWrite () throws IOException + { if (inbufLength > 0) { - def.setInput (inbuf, 0, inbufLength); - deflate (); + int size = inbufLength; inbufLength = 0; + write (inbuf, 0, size); } - def.setInput (buf, off, len); - deflate (); } // Used, if needed, for write(int). |