From cb1902adbf904ff5b63d0a9ceed558783b0c875a Mon Sep 17 00:00:00 2001 From: Warren Levy Date: Thu, 1 Jul 1999 17:01:00 +0000 Subject: [multiple changes] 1999-07-01 Warren Levy * 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 * 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 --- libjava/java/io/BufferedOutputStream.java | 5 ++++- libjava/java/io/BufferedReader.java | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'libjava/java') 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) -- cgit v1.1