OSDN Git Service

1999-07-01 Warren Levy <warrenl@cygnus.com>
authorwarrenl <warrenl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Jul 1999 17:01:00 +0000 (17:01 +0000)
committerwarrenl <warrenl@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Jul 1999 17:01:00 +0000 (17:01 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27892 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/gnu/gcj/convert/BytesToUnicode.java
libjava/gnu/gcj/convert/Input_8859_1.java
libjava/gnu/gcj/convert/Input_EUCJIS.java
libjava/gnu/gcj/convert/Input_JavaSrc.java
libjava/gnu/gcj/convert/Input_SJIS.java
libjava/gnu/gcj/convert/Input_UTF8.java
libjava/gnu/gcj/convert/natInput_EUCJIS.cc
libjava/gnu/gcj/convert/natInput_SJIS.cc
libjava/java/io/BufferedOutputStream.java
libjava/java/io/BufferedReader.java

index de89469..247da09 100644 (file)
@@ -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 ().
index cfcb813..6e4d15d 100644 (file)
@@ -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);
 }
index e0d2d51..edc5973 100644 (file)
@@ -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)
index 1531442..12dc34e 100644 (file)
@@ -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);
 }
index fc2107a..68af337 100644 (file)
@@ -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)
index cdc7c4c..5098820 100644 (file)
@@ -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;
 }
index 0bb5c48..ab1ac51 100644 (file)
@@ -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;
index 4c62818..8f3b272 100644 (file)
@@ -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;
index 59ad532..5a040b1 100644 (file)
@@ -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;
index d37ed5d..3e26592 100644 (file)
@@ -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;
index 19e371a..9e9e764 100644 (file)
@@ -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)