re PR libgcj/8738 (java.io.CharArrayWriter's write methods erroneously throw IOExceptions)
2002-06-06 James Clark <jjc@jclark.com> Fix for PR libgcj/8738: * gnu/gcj/convert/UnicodeToBytes.java (havePendingBytes): New method. * gnu/gcj/convert/Output_SJIS.java (havePendingBytes): Likewise. * gnu/gcj/convert/Output_EUCJIS.java (havePendingBytes): Likewise. * gnu/gcj/convert/Output_UTF8.java (havePendingBytes): Likewise. (write): Always decrease avail when count is increased. * java/lang/natString.cc (getBytes): Check converter havePendingBytes() and whether output buffer is full before increasing size. 2002-06-06 Mark Wielaard <mark@klomp dot org> * java/io/PrintStream.java (writeChars(char[],int, int)): Check converter.havePendingBytes(). (writeChars(String,int,int)): Likewise. * java/io/OutputStreamWriter.java (writeChars(char[], int, int)): Check converter.havePendingBytes() and flush buffer when stalled. From-SVN: r67595
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1999, 2000 Free Software Foundation
|
||||
/* Copyright (C) 1999, 2000, 2003 Free Software Foundation
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
@@ -104,6 +104,7 @@ public class Output_UTF8 extends UnicodeToBytes
|
||||
{
|
||||
value = (hi_part - 0xD800) * 0x400 + (ch - 0xDC00) + 0x10000;
|
||||
buf[count++] = (byte) (0xF0 | (value >> 18));
|
||||
avail--;
|
||||
bytes_todo = 3;
|
||||
hi_part = 0;
|
||||
}
|
||||
@@ -118,4 +119,10 @@ public class Output_UTF8 extends UnicodeToBytes
|
||||
}
|
||||
return inpos - start_pos;
|
||||
}
|
||||
|
||||
public boolean havePendingBytes()
|
||||
{
|
||||
return bytes_todo > 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user