summaryrefslogtreecommitdiff
path: root/libjava/java/io/PushbackInputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/io/PushbackInputStream.java')
-rw-r--r--libjava/java/io/PushbackInputStream.java8
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;