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 | |
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')
-rw-r--r-- | libjava/ChangeLog | 20 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/BytesToUnicode.java | 12 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/Input_8859_1.java | 6 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/Input_EUCJIS.java | 2 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/Input_JavaSrc.java | 4 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/Input_SJIS.java | 2 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/Input_UTF8.java | 6 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/natInput_EUCJIS.cc | 4 | ||||
-rw-r--r-- | libjava/gnu/gcj/convert/natInput_SJIS.cc | 4 | ||||
-rw-r--r-- | libjava/java/io/BufferedOutputStream.java | 5 | ||||
-rw-r--r-- | libjava/java/io/BufferedReader.java | 4 |
11 files changed, 47 insertions, 22 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index de89469..247da09 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,23 @@ +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. + 1999-07-01 Andrew Haley <aph@cygnus.com> * include/i386-signal.h: Replace sigaction () with __sigaction (). diff --git a/libjava/gnu/gcj/convert/BytesToUnicode.java b/libjava/gnu/gcj/convert/BytesToUnicode.java index cfcb813..6e4d15d 100644 --- a/libjava/gnu/gcj/convert/BytesToUnicode.java +++ b/libjava/gnu/gcj/convert/BytesToUnicode.java @@ -91,15 +91,17 @@ public abstract class BytesToUnicode * bytes start at inbuffer[inpos], and end at inbuffer[inlength-1]. * @param outbuffer buffer for the converted character * @param outpos position in buffer to start putting converted characters - * @param outlength the maximum number of characters to convert + * @param count the maximum number of characters to convert * @return number of chars placed in outbuffer. * Also, this.inpos is incremented by the number of bytes consumed. * * (Note the asymmetry in that the input upper bound is inbuffer[inlength-1], - * while the output upper bound is outbuffer[outpos+outlength-1]. The + * while the output upper bound is outbuffer[outpos+count-1]. The * justification is that inlength is like the count field of a - * BufferedInputStream, while the outlength parameter is like the - * length parameter of a read request.) + * BufferedInputStream, while the count parameter is like the + * length parameter of a read request.) The count parameter is + * also defined to be <= outbuffer.length - outpos (per the specification + * of the length parameter for a read request). */ - public abstract int read (char[] outbuffer, int outpos, int outlength); + public abstract int read (char[] outbuffer, int outpos, int count); } diff --git a/libjava/gnu/gcj/convert/Input_8859_1.java b/libjava/gnu/gcj/convert/Input_8859_1.java index e0d2d51..edc5973 100644 --- a/libjava/gnu/gcj/convert/Input_8859_1.java +++ b/libjava/gnu/gcj/convert/Input_8859_1.java @@ -11,21 +11,21 @@ package gnu.gcj.convert; /** * Convert ISO-Latin-1 (8851-1) text to Unicode. * @author Per Bothner <bothner@cygnus.com> - * @date Match 1999. + * @date March 1999. */ public class Input_8859_1 extends BytesToUnicode { public String getName() { return "8859_1"; } - public int read (char[] outbuffer, int outpos, int outlength) + public int read (char[] outbuffer, int outpos, int count) { int origpos = outpos; // Make sure fields of this are in registers. int inpos = this.inpos; byte[] inbuffer = this.inbuffer; int inavail = this.inlength - inpos; - int outavail = outlength - outpos; + int outavail = count; if (outavail > inavail) outavail = inavail; while (--outavail >= 0) diff --git a/libjava/gnu/gcj/convert/Input_EUCJIS.java b/libjava/gnu/gcj/convert/Input_EUCJIS.java index 1531442..12dc34e 100644 --- a/libjava/gnu/gcj/convert/Input_EUCJIS.java +++ b/libjava/gnu/gcj/convert/Input_EUCJIS.java @@ -21,5 +21,5 @@ public class Input_EUCJIS extends BytesToUnicode int codeset = 0; int first_byte; - public native int read (char[] outbuffer, int outpos, int outlength); + public native int read (char[] outbuffer, int outpos, int count); } diff --git a/libjava/gnu/gcj/convert/Input_JavaSrc.java b/libjava/gnu/gcj/convert/Input_JavaSrc.java index fc2107a..68af337 100644 --- a/libjava/gnu/gcj/convert/Input_JavaSrc.java +++ b/libjava/gnu/gcj/convert/Input_JavaSrc.java @@ -27,14 +27,14 @@ public class Input_JavaSrc extends BytesToUnicode int value; - public int read (char[] outbuffer, int outpos, int outlength) + public int read (char[] outbuffer, int outpos, int count) { int origpos = outpos; for (;;) { if (inpos >= inlength) break; - if (outpos >= outlength) + if (outpos - origpos >= count) break; char b = (char) (inbuffer[inpos++] & 0xFF); switch (state) diff --git a/libjava/gnu/gcj/convert/Input_SJIS.java b/libjava/gnu/gcj/convert/Input_SJIS.java index cdc7c4c..5098820 100644 --- a/libjava/gnu/gcj/convert/Input_SJIS.java +++ b/libjava/gnu/gcj/convert/Input_SJIS.java @@ -18,7 +18,7 @@ public class Input_SJIS extends BytesToUnicode { public String getName() { return "SJIS"; } - public native int read (char[] outbuffer, int outpos, int outlength); + public native int read (char[] outbuffer, int outpos, int count); int first_byte; } diff --git a/libjava/gnu/gcj/convert/Input_UTF8.java b/libjava/gnu/gcj/convert/Input_UTF8.java index 0bb5c48..ab1ac51 100644 --- a/libjava/gnu/gcj/convert/Input_UTF8.java +++ b/libjava/gnu/gcj/convert/Input_UTF8.java @@ -11,7 +11,7 @@ package gnu.gcj.convert; /** * Convert UTF8 to Unicode. * @author Per Bothner <bothner@cygnus.com> - * @date Match 1999. + * @date March 1999. */ public class Input_UTF8 extends BytesToUnicode @@ -22,12 +22,12 @@ public class Input_UTF8 extends BytesToUnicode int partial_bytes_expected = 0; //int suggogate_second = -1; - public int read (char[] outbuffer, int outpos, int outlength) + public int read (char[] outbuffer, int outpos, int count) { int origpos = outpos; for (;;) { - if (outpos >= outlength) + if (outpos - origpos >= count) break; if (inpos >= inlength) break; diff --git a/libjava/gnu/gcj/convert/natInput_EUCJIS.cc b/libjava/gnu/gcj/convert/natInput_EUCJIS.cc index 4c62818..8f3b272 100644 --- a/libjava/gnu/gcj/convert/natInput_EUCJIS.cc +++ b/libjava/gnu/gcj/convert/natInput_EUCJIS.cc @@ -17,12 +17,12 @@ extern unsigned short JIS0212_to_Unicode[76][94]; jint gnu::gcj::convert::Input_EUCJIS::read(jcharArray outbuffer, jint outpos, - jint outlength) + jint count) { jint start_outpos = outpos; for (;;) { - if (outpos >= outlength) + if (outpos - start_outpos >= count) break; if (inpos >= inlength) break; diff --git a/libjava/gnu/gcj/convert/natInput_SJIS.cc b/libjava/gnu/gcj/convert/natInput_SJIS.cc index 59ad532..5a040b1 100644 --- a/libjava/gnu/gcj/convert/natInput_SJIS.cc +++ b/libjava/gnu/gcj/convert/natInput_SJIS.cc @@ -17,12 +17,12 @@ extern unsigned short JIS0212_to_Unicode[76][94]; jint gnu::gcj::convert::Input_SJIS::read(jcharArray outbuffer, jint outpos, - jint outlength) + jint count) { jint start_outpos = outpos; for (;;) { - if (outpos >= outlength) + if (outpos - start_outpos >= count) break; if (inpos >= inlength) break; 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) |