On Mon, 14 Jul 2025 07:28:09 GMT, Xueming Shen <sher...@openjdk.org> wrote:
>> src/java.base/share/classes/jdk/internal/util/regex/CaseFolding.java.template >> line 99: >> >>> 97: */ >>> 98: public static int[] getClassRangeClosingCharacters(int start, int >>> end) { >>> 99: int[] expanded = new int[expanded_casefolding.size()]; >> >> Can be `Math.min(expanded_casefolding.size(), end - start)` in case the >> table grows large, and update the `off < expanded.length` check below too. > > The table itself probably isn't going to grow significantly anytime soon, and > we’ll likely have enough time to adjust if CaseFolding.txt does get > substantially bigger. > > That said, I probably should consider reversing the lookup logic: instead of > iterating through [start, end], we could iterate over the expansion table and > check whether any of its code points fall within the input range, at least > when the range size is larger than the size of the table, kinda O(n) vs > O(1)-ish. updated the lookup logic as discussed. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/26285#discussion_r2207809731