review request for 6798511/6860431: Include functionality of Surrogate in Character

Ulf Zibis Ulf.Zibis at gmx.de
Sun Mar 21 00:30:59 UTC 2010


Fast path for BMP. +1

I don't find ensureCapacityInternal() ???

shorter:
     public AbstractStringBuilder appendCodePoint(int codePoint) {
         int count = this.count;
         if (Character.isBMPCodePoint(codePoint)) {
             ensureCapacityInternal(count + 1);
             value[count++] = (char) codePoint;
         } else if (Character.isValidCodePoint(codePoint)) {
             ensureCapacityInternal(count + 2);
             count += Character.toSurrogates(codePoint, value, count);
         } else
             throw new IllegalArgumentException();
         return this;
     }

-Ulf


Am 20.03.2010 06:01, schrieb Martin Buchholz:
> Here's another little improvement that should use isBMPCodePoint:
>
> diff --git a/src/share/classes/java/lang/AbstractStringBuilder.java
> b/src/share/classes/java/lang/AbstractStringBuilder.java
> --- a/src/share/classes/java/lang/AbstractStringBuilder.java
> +++ b/src/share/classes/java/lang/AbstractStringBuilder.java
> @@ -719,20 +719,17 @@
>        * {@code codePoint} isn't a valid Unicode code point
>        */
>       public AbstractStringBuilder appendCodePoint(int codePoint) {
> -        if (!Character.isValidCodePoint(codePoint)) {
> +        if (Character.isBMPCodePoint(codePoint)) {
> +            ensureCapacityInternal(count + 1);
> +            value[count] = (char) codePoint;
> +            count += 1;
> +        } else if (Character.isValidCodePoint(codePoint)) {
> +            ensureCapacityInternal(count + 2);
> +            Character.toSurrogates(codePoint, value, count);
> +            count += 2;
> +        } else {
>               throw new IllegalArgumentException();
>           }
> -        int n = 1;
> -        if (codePoint>= Character.MIN_SUPPLEMENTARY_CODE_POINT) {
> -            n++;
> -        }
> -        ensureCapacityInternal(count + n);
> -        if (n == 1) {
> -            value[count++] = (char) codePoint;
> -        } else {
> -            Character.toSurrogates(codePoint, value, count);
> -            count += n;
> -        }
>           return this;
>       }
>
>
> Martin
>
>
>    




More information about the core-libs-dev mailing list