aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2003-10-27 11:02:44 +0000
committerMark Wielaard <mark@gcc.gnu.org>2003-10-27 11:02:44 +0000
commit57b4edef7d295f067c6bb66ba487c40ea9dc3d58 (patch)
tree925879ccbf56ae0aba32d61adcf4d4d421adde0a /libjava
parentb19ee4bd24bb2ef06911fdf609a156171e2a4e0d (diff)
downloadgcc-57b4edef7d295f067c6bb66ba487c40ea9dc3d58.zip
gcc-57b4edef7d295f067c6bb66ba487c40ea9dc3d58.tar.gz
gcc-57b4edef7d295f067c6bb66ba487c40ea9dc3d58.tar.bz2
Reported by Helmer Kraemer <hkraemer@freenet.de>
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. From-SVN: r72976
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog11
-rw-r--r--libjava/java/util/jar/JarInputStream.java1
-rw-r--r--libjava/java/util/zip/DeflaterOutputStream.java30
3 files changed, 23 insertions, 19 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index d4c1981..a7fe99a 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,14 @@
+2003-10-26 Mark Wielaard <mark@klomp.org>
+
+ 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.
+
2003-10-26 Bryce McKinlay <bryce@mckinlay.net.nz>
* java/lang/reflect/AccessibleObject.java (secureSetAccessible):
diff --git a/libjava/java/util/jar/JarInputStream.java b/libjava/java/util/jar/JarInputStream.java
index 9c295f3..daf935f 100644
--- a/libjava/java/util/jar/JarInputStream.java
+++ b/libjava/java/util/jar/JarInputStream.java
@@ -116,7 +116,6 @@ public class JarInputStream extends ZipInputStream
}
firstEntry = (JarEntry) super.getNextEntry();
}
- closeEntry();
if (verify)
{
diff --git a/libjava/java/util/zip/DeflaterOutputStream.java b/libjava/java/util/zip/DeflaterOutputStream.java
index ff66b08..6a4fa95 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).