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.

From-SVN: r85340
This commit is contained in:
Michael Koch 2004-07-30 17:00:34 +00:00 committed by Michael Koch
parent fbc8762793
commit f370ef24f4
5 changed files with 30 additions and 12 deletions

View file

@ -104,7 +104,7 @@ public class GZIPInputStream
public GZIPInputStream(InputStream in)
throws IOException
{
this(in, 512);
this(in, 4096);
}
/**

View file

@ -69,7 +69,7 @@ public class GZIPOutputStream extends DeflaterOutputStream
*/
public GZIPOutputStream(OutputStream out) throws IOException
{
this(out, 512);
this(out, 4096);
}
/**

View file

@ -251,7 +251,7 @@ public class Inflater
* @param buffer the input.
* @exception IllegalStateException if no input is needed.
*/
public void setInput (byte[] buf)
public void setInput (byte[] buf)
{
setInput (buf, 0, buf.length);
}

View file

@ -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;