mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-25 22:04:07 +08:00
re PR libgcj/7766 (ZipInputStream.available returns 0 immediately after construction)
2002-09-25 Jesse Rosenstock <jmr@ugcs.caltech.edu> Fix for PR libgcj/7766: * java/util/zip/ZipInputStream.java (entryAtEOF): New field. (getNextEntry): Set it. (closeEntry): Likewise. (read): Likewise. (close): Likewise. (available): Use it. From-SVN: r57513
This commit is contained in:
parent
dac2c906db
commit
941b08f273
@ -1,3 +1,13 @@
|
||||
2002-09-25 Jesse Rosenstock <jmr@ugcs.caltech.edu>
|
||||
|
||||
Fix for PR libgcj/7766:
|
||||
* java/util/zip/ZipInputStream.java (entryAtEOF): New field.
|
||||
(getNextEntry): Set it.
|
||||
(closeEntry): Likewise.
|
||||
(read): Likewise.
|
||||
(close): Likewise.
|
||||
(available): Use it.
|
||||
|
||||
2002-09-25 Michael Koch <konqueror@gmx.de>
|
||||
|
||||
* java/net/DatagramSocket.java
|
||||
|
@ -61,6 +61,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
|
||||
private int method;
|
||||
private int flags;
|
||||
private int avail;
|
||||
private boolean entryAtEOF;
|
||||
|
||||
/**
|
||||
* Creates a new Zip input stream, reading a zip archive.
|
||||
@ -150,7 +151,8 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
|
||||
return null;
|
||||
}
|
||||
if (header != LOCSIG)
|
||||
throw new ZipException("Wrong Local header signature" + Integer.toHexString(header));
|
||||
throw new ZipException("Wrong Local header signature"
|
||||
+ Integer.toHexString(header));
|
||||
/* skip version */
|
||||
readLeShort();
|
||||
flags = readLeShort();
|
||||
@ -171,6 +173,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
|
||||
String name = new String(buffer);
|
||||
|
||||
entry = createZipEntry(name);
|
||||
entryAtEOF = false;
|
||||
entry.setMethod(method);
|
||||
if ((flags & 8) == 0)
|
||||
{
|
||||
@ -252,11 +255,12 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
|
||||
if (method == ZipOutputStream.DEFLATED)
|
||||
inf.reset();
|
||||
entry = null;
|
||||
entryAtEOF = true;
|
||||
}
|
||||
|
||||
public int available() throws IOException
|
||||
{
|
||||
return entry != null ? 1 : 0;
|
||||
return entryAtEOF ? 0 : 1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -335,6 +339,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
|
||||
throw new ZipException("CRC mismatch");
|
||||
crc.reset();
|
||||
entry = null;
|
||||
entryAtEOF = true;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
@ -348,6 +353,7 @@ public class ZipInputStream extends InflaterInputStream implements ZipConstants
|
||||
super.close();
|
||||
crc = null;
|
||||
entry = null;
|
||||
entryAtEOF = true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user