On Thu, Mar 11, 2010 at 10:25, Ulf Zibis <[email protected]> wrote: > Am 11.03.2010 05:42, schrieb Martin Buchholz: >> >> I couldn't resist making a similar change to isValidCodePoint. >> >> @@ -2678,7 +2678,8 @@ >> * @since 1.5 >> */ >> public static boolean isValidCodePoint(int codePoint) { >> - return codePoint>= MIN_CODE_POINT&& codePoint<= MAX_CODE_POINT; >> + int plane = codePoint>>> 16; >> + return plane< ((MAX_CODE_POINT + 1)>>> 16); >> } >> >> /** >> >> This is a more important optimization, since isValidCodePoint >> almost always requires two compares, and this reduces it to one. >> > > Why isn't this true for isSupplementaryCodePoint() too ? > Particularly there the "cheap" compare against 0 can't be benefited.
Because almost all code points are actually BMP, the naive implementation of isValidCodePoint will almost always require one more branch than isSupplementaryCodePoint, making it more valuable to optimize. >> (Still, none of these are really important, and no one will notice) Martin
