diff options
author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-30 17:00:34 +0000 |
---|---|---|
committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-07-30 17:00:34 +0000 |
commit | 574b4c1c10281a749bb766b7b36f90b355df4341 (patch) | |
tree | 0768b92f77f32a9eee18589b26d6c67372372ee9 /libjava/java/util/zip/InflaterInputStream.java | |
parent | e9a995bf217f4e33fde42f14ae448b326024fc63 (diff) | |
download | ppe42-gcc-574b4c1c10281a749bb766b7b36f90b355df4341.tar.gz ppe42-gcc-574b4c1c10281a749bb766b7b36f90b355df4341.zip |
2004-07-30 Michael Koch <konqueror@gmx.de>
* java/util/zip/GZIPInputStream.java
(GZIPInputStream): Increase buffer size to 4k.
* java/util/zip/GZIPOutputStream.java
(GZIPOutputStream): Likewise.
* java/util/zip/Inflater.java
(setInput): Merged formating with GNU classpath.
* java/util/zip/InflaterInputStream.java
(InflaterInputStream): Increase buffer size to 4k.
(fill): Throw exception if stream ends early.
(read): Merged endless-loop with GNU classpath.
(skip): Increase buffer size to 2k.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85340 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/util/zip/InflaterInputStream.java')
-rw-r--r-- | libjava/java/util/zip/InflaterInputStream.java | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/libjava/java/util/zip/InflaterInputStream.java b/libjava/java/util/zip/InflaterInputStream.java index 60442e474af..27c29ff41df 100644 --- a/libjava/java/util/zip/InflaterInputStream.java +++ b/libjava/java/util/zip/InflaterInputStream.java @@ -79,7 +79,7 @@ public class InflaterInputStream extends FilterInputStream */ public InflaterInputStream(InputStream in) { - this(in, new Inflater(), 512); + this(in, new Inflater(), 4096); } /** @@ -91,7 +91,7 @@ public class InflaterInputStream extends FilterInputStream */ public InflaterInputStream(InputStream in, Inflater inf) { - this(in, inf, 512); + this(in, inf, 4096); } /** @@ -149,8 +149,10 @@ public class InflaterInputStream extends FilterInputStream len = in.read(buf, 0, buf.length); - if (len != -1) - inf.setInput(buf, 0, len); + if (len < 0) + throw new ZipException("Deflated stream ends early."); + + inf.setInput(buf, 0, len); } /** @@ -170,7 +172,7 @@ public class InflaterInputStream extends FilterInputStream return -1; int count = 0; - while (count == 0) + for (;;) { if (inf.needsInput()) fill(); @@ -193,8 +195,10 @@ public class InflaterInputStream extends FilterInputStream { throw new ZipException(dfe.getMessage()); } + + if (count > 0) + return count; } - return count; } /** @@ -212,18 +216,18 @@ public class InflaterInputStream extends FilterInputStream if (n == 0) return 0; - int buflen = (int) Math.min(n, 1024); + int buflen = (int) Math.min(n, 2048); byte[] tmpbuf = new byte[buflen]; long skipped = 0L; while (n > 0L) { int numread = read(tmpbuf, 0, buflen); - if (numread == -1) + if (numread <= 0) break; n -= numread; skipped += numread; - buflen = (int) Math.min(n, 1024); + buflen = (int) Math.min(n, 2048); } return skipped; |