summaryrefslogtreecommitdiffstats
path: root/libjava/java/util/zip/DeflaterOutputStream.java
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-27 11:02:44 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2003-10-27 11:02:44 +0000
commit30bb507e998ba2369312fc89fed31d05c9e1d05c (patch)
tree925879ccbf56ae0aba32d61adcf4d4d421adde0a /libjava/java/util/zip/DeflaterOutputStream.java
parentec96de93a5e8117a86cb6c7d50b45026a2416557 (diff)
downloadppe42-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.java30
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).
OpenPOWER on IntegriCloud