[kaffe] CVS kaffe
(kaz): libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java,
Guilhem Lavaux
guilhem at kaffe.org
Thu Oct 20 11:59:38 PDT 2005
Hi Ito,
Could you push your patch yourself on classpath-patches ml ? :) I could
do it but it is maybe better if you do it.
Thanks for bringing it back btw !
Guilhem.
Kaffe CVS wrote:
> PatchSet 6951
> Date: 2005/10/20 14:59:56
> Author: kaz
> Branch: HEAD
> Tag: (none)
> Log:
> 2005-10-20 Ito Kazumitsu <kaz at maczuka.gcd.org>
>
> * libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java,
> libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java,
> libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java:
> Proposed patch for GCC Bugzilla Bug 23008 and 22968.
>
> Members:
> ChangeLog:1.4475->1.4476
> libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java:1.1->1.2
> libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java:1.1->1.2
> libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java:1.1->1.2
>
> Index: kaffe/ChangeLog
> diff -u kaffe/ChangeLog:1.4475 kaffe/ChangeLog:1.4476
> --- kaffe/ChangeLog:1.4475 Wed Oct 19 20:48:10 2005
> +++ kaffe/ChangeLog Thu Oct 20 14:59:56 2005
> @@ -1,3 +1,10 @@
> +2005-10-20 Ito Kazumitsu <kaz at maczuka.gcd.org>
> +
> + * libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java,
> + libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java,
> + libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java:
> + Proposed patch for GCC Bugzilla Bug 23008 and 22968.
> +
> 2005-10-19 Guilhem Lavaux <guilhem at kaffe.org>
>
> * developers/update-vm-list: New script adapted from update-class-list
> Index: kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java
> diff -u kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java:1.1 kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java:1.2
> --- kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java:1.1 Wed Oct 19 20:36:31 2005
> +++ kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UTF_16Decoder.java Thu Oct 20 15:00:03 2005
> @@ -54,6 +54,8 @@
> static final int BIG_ENDIAN = 0;
> static final int LITTLE_ENDIAN = 1;
> static final int UNKNOWN_ENDIAN = 2;
> + static final int MAYBE_BIG_ENDIAN = 3;
> + static final int MAYBE_LITTLE_ENDIAN = 4;
>
> private static final char BYTE_ORDER_MARK = 0xFEFF;
> private static final char REVERSED_BYTE_ORDER_MARK = 0xFFFE;
> @@ -81,26 +83,37 @@
> byte b2 = in.get ();
>
> // handle byte order mark
> - if (byteOrder == UNKNOWN_ENDIAN)
> + if (byteOrder == UNKNOWN_ENDIAN ||
> + byteOrder == MAYBE_BIG_ENDIAN ||
> + byteOrder == MAYBE_LITTLE_ENDIAN)
> {
> char c = (char) (((b1 & 0xFF) << 8) | (b2 & 0xFF));
> if (c == BYTE_ORDER_MARK)
> {
> + if (byteOrder == MAYBE_LITTLE_ENDIAN)
> + {
> + return CoderResult.malformedForLength (2);
> + }
> byteOrder = BIG_ENDIAN;
> inPos += 2;
> continue;
> }
> else if (c == REVERSED_BYTE_ORDER_MARK)
> {
> + if (byteOrder == MAYBE_BIG_ENDIAN)
> + {
> + return CoderResult.malformedForLength (2);
> + }
> byteOrder = LITTLE_ENDIAN;
> inPos += 2;
> continue;
> }
> else
> {
> - // assume big endian, do not consume bytes,
> + // assume big or little endian, do not consume bytes,
> // continue with normal processing
> - byteOrder = BIG_ENDIAN;
> + byteOrder = (byteOrder == MAYBE_LITTLE_ENDIAN ?
> + LITTLE_ENDIAN : BIG_ENDIAN);
> }
> }
>
> Index: kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java
> diff -u kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java:1.1 kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java:1.2
> --- kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java:1.1 Wed Oct 19 20:36:31 2005
> +++ kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/UnicodeLittle.java Thu Oct 20 15:00:03 2005
> @@ -64,7 +64,7 @@
>
> public CharsetDecoder newDecoder ()
> {
> - return new UTF_16Decoder (this, UTF_16Decoder.UNKNOWN_ENDIAN);
> + return new UTF_16Decoder (this, UTF_16Decoder.MAYBE_LITTLE_ENDIAN);
> }
>
> public CharsetEncoder newEncoder ()
> Index: kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java
> diff -u kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java:1.1 kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java:1.2
> --- kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java:1.1 Wed Oct 19 20:36:32 2005
> +++ kaffe/libraries/javalib/external/classpath/gnu/java/nio/charset/iconv/IconvProvider.java Thu Oct 20 15:00:04 2005
> @@ -62,7 +62,11 @@
> }
> }
>
> - private IconvProvider()
> + // Declaring the construtor public may violate the use of singleton.
> + // But it must be public so that an instance of this class can be
> + // created by Class.newInstance(), which is the case when this provider is
> + // defined in META-INF/services/java.nio.charset.spi.CharsetProvider.
> + public IconvProvider()
> {
> IconvMetaData.setup();
> }
>
> _______________________________________________
> kaffe mailing list
> kaffe at kaffe.org
> http://kaffe.org/cgi-bin/mailman/listinfo/kaffe
>
More information about the kaffe
mailing list