diff options
author | Warren Levy <warrenl@gcc.gnu.org> | 1999-07-01 17:01:00 +0000 |
---|---|---|
committer | Warren Levy <warrenl@gcc.gnu.org> | 1999-07-01 17:01:00 +0000 |
commit | cb1902adbf904ff5b63d0a9ceed558783b0c875a (patch) | |
tree | 70da939588cb45ac14f7dd46616cb050181871b0 /libjava/java/io | |
parent | b537d12084f7aba41c814b0bcf0edf5d0ac3a159 (diff) | |
download | gcc-cb1902adbf904ff5b63d0a9ceed558783b0c875a.zip gcc-cb1902adbf904ff5b63d0a9ceed558783b0c875a.tar.gz gcc-cb1902adbf904ff5b63d0a9ceed558783b0c875a.tar.bz2 |
[multiple changes]
1999-07-01 Warren Levy <warrenl@cygnus.com>
* gnu/gcj/convert/BytesToUnicode.java (read): Changed outlength
to count and revised comments to match.
* gnu/gcj/convert/Input_EUCJIS.java (read): Same as Input_8859_1.java.
* gnu/gcj/convert/Input_JavaSrc.java (read): ditto.
* gnu/gcj/convert/Input_SJIS.java (read): ditto.
* gnu/gcj/convert/Input_UTF8.java (read): ditto.
* gnu/gcj/convert/natInput_EUCJIS.cc (read): ditto.
* gnu/gcj/convert/natInput_SJIS.cc (read): ditto.
1999-07-01 John-Marc Chandonia <jmc@cmpharm.ucsf.edu>
* gnu/gcj/convert/Input_8859_1.java (read): Use 3rd parameter
properly as count rather than outlength.
* java/io/BufferedOutputStream.java (write(byte[],int,int): Flush
output on overflow rather than buffer fill.
* java/io/BufferedReader.java (fill): Don't clear out the buffer
if markPos is 0 and there is still room in the buffer.
From-SVN: r27892
Diffstat (limited to 'libjava/java/io')
-rw-r--r-- | libjava/java/io/BufferedOutputStream.java | 5 | ||||
-rw-r--r-- | libjava/java/io/BufferedReader.java | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/libjava/java/io/BufferedOutputStream.java b/libjava/java/io/BufferedOutputStream.java index d37ed5d..3e26592 100644 --- a/libjava/java/io/BufferedOutputStream.java +++ b/libjava/java/io/BufferedOutputStream.java @@ -42,6 +42,7 @@ public class BufferedOutputStream extends FilterOutputStream public synchronized void write (int b) throws IOException { + // Flush output on overflow though JDK (1.2) doc may infer to flush on fill. if (count < buf.length) buf[count++] = (byte) b; else @@ -55,8 +56,10 @@ public class BufferedOutputStream extends FilterOutputStream public synchronized void write (byte[] b, int off, int len) throws IOException, NullPointerException, IndexOutOfBoundsException { + // Flush output on overflow though JDK (1.2) doc may infer to flush on fill. + // If LEN < 0 then the downstream write will fail for us. - if (len >= 0 && count + len < buf.length) + if (len >= 0 && count + len <= buf.length) { System.arraycopy(b, off, buf, count, len); count += len; diff --git a/libjava/java/io/BufferedReader.java b/libjava/java/io/BufferedReader.java index 19e371a..9e9e764 100644 --- a/libjava/java/io/BufferedReader.java +++ b/libjava/java/io/BufferedReader.java @@ -197,7 +197,7 @@ public class BufferedReader extends Reader } } - /* Read more data into the buffer. Update pos and limit appropriatly. + /* Read more data into the buffer. Update pos and limit appropriately. Assumes pos==limit initially. May invalidate the mark if read too much. Return number of chars read (never 0), or -1 on eof. */ private int fill() throws IOException @@ -214,7 +214,7 @@ public class BufferedReader extends Reader if (markPos >= 0 && limit == buffer.length) markPos = -1; - if (markPos <= 0) + if (markPos < 0) pos = limit = 0; int count = in.read(buffer, limit, buffer.length - limit); if (count > 0) |