On Tue, 21 Feb 2023 11:14:13 GMT, Eirik Bjorsnos <d...@openjdk.org> wrote:

>> This PR suggests we can speed up `StringLatin1.regionMatchesCI` by applying 
>> 'the oldest ASCII trick in the book'.
>> 
>> The new static method `CharacterDataLatin1.equalsIgnoreCase` compares two 
>> latin1 bytes for equality ignoring case. `StringLatin1.regionMatchesCI` is 
>> updated to use `equalsIgnoreCase`
>> 
>> To verify the correctness of `equalsIgnoreCase`, a new test is added  to 
>> `EqualsIgnoreCase` with an exhaustive verification that all 256x256 latin1 
>> code point pairs have an `equalsIgnoreCase` consistent with 
>> Character.toUpperCase, Character.toLowerCase.
>> 
>> Performance is tested for matching and mismatching cases of code point pairs 
>> picked from the ASCII letter, ASCII number and latin1 letter ranges. Results 
>> in the first comment below.
>
> Eirik Bjorsnos has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Remove whitespace following '('

src/java.base/share/classes/java/lang/CharacterDataLatin1.java.template line 
163:

> 161:         return mapChar;
> 162:     }
> 163:     /**

I assume you should insert a blank line between the two methods.

src/java.base/share/classes/java/lang/CharacterDataLatin1.java.template line 
175:

> 173:          }
> 174:          // uppercase b1 using 'the oldest ASCII trick in the book'
> 175:          int U = b1 & 0xDF;

I'm sure some people reading this comment will wonder which book :-) It might 
be better to drop that bit and if possible, find a better name for "U" as 
normally variables start with a lower case.

-------------

PR: https://git.openjdk.org/jdk/pull/12632

Reply via email to