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