A few char-fiddling optimizations for Pattern.java
Ulf Zibis
Ulf.Zibis at gmx.de
Fri Apr 16 09:38:58 UTC 2010
Am 16.04.2010 10:48, schrieb Ulf Zibis:
> On a 2nd thought, I think a code point in the surrogate range should
> be rare, as it is kinda invalid. So why check it in 1. place.
> What is the purpose of the method?
> - isNotValidOrSurrogateBMPCodePoint --> includes negative and values >
> MAX_SUPPLEMENTARY_CODE_POINT
> - needsSurrogateTreatment --> only includes surrogate and valid
> supplementary code points
legacy isSupplementary() --> excludes negatives, but includes values >
MAX_SUPPLEMENTARY_CODE_POINT
>
> I'm thinking about:
> boolean isBMPCodePoint(int cp, boolean validateSurrogate) {...}
Thinking again, I would drop isBMPCodePoint(int cp) against:
boolean isBMPCodePoint(int cp, boolean validateSurrogate) {
return (cp >>> 16) == 0 && !(validateSurrogate &&
isSurrogate((char)cp));
}
It would serve more complete the possible use cases.
It would inline to (cp >>> 16) == 0, if validateSurrogate == false.
-Ulf
More information about the core-libs-dev
mailing list