diff options
Diffstat (limited to 'libjava/java/io/PushbackInputStream.java')
-rw-r--r-- | libjava/java/io/PushbackInputStream.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libjava/java/io/PushbackInputStream.java b/libjava/java/io/PushbackInputStream.java index ebf0e38616a..ffc582f9ecf 100644 --- a/libjava/java/io/PushbackInputStream.java +++ b/libjava/java/io/PushbackInputStream.java @@ -201,6 +201,7 @@ public class PushbackInputStream extends FilterInputStream public synchronized int read(byte[] b, int off, int len) throws IOException { int numBytes = Math.min(buf.length - pos, len); + if (numBytes > 0) { System.arraycopy (buf, pos, b, off, numBytes); @@ -209,10 +210,10 @@ public class PushbackInputStream extends FilterInputStream off += numBytes; } - if (len > 0) + if (len > 0) { len = super.read(b, off, len); - if (len == -1) // EOF + if (len == -1) //EOF return numBytes > 0 ? numBytes : -1; numBytes += len; } @@ -318,7 +319,8 @@ public class PushbackInputStream extends FilterInputStream int numread = (int) Math.min((long) (buf.length - pos), n); pos += numread; n -= numread; - n -= super.skip(n); + if (n > 0) + n -= super.skip(n); } return origN - n; |