RFR: 8299199: Avoid redundant split calls in FontConfiguration.initReorderMap implementations
Andrey Turbanov
aturbanov at openjdk.org
Wed Dec 21 11:59:53 UTC 2022
On Wed, 21 Dec 2022 11:35:47 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:
>> `FontConfiguration.split` uses legacy synchronized `Vector` class. But actually there is no need to use it, because input arguments are known at compile time. Instead of split usages we can just create String[] array with filled values directly.
>
> src/java.desktop/share/classes/sun/awt/FontConfiguration.java line 856:
>
>> 854:
>> 855: protected String[] split(String sequence) {
>> 856: Vector<String> v = splitSequence(sequence);
>
> Can `splitSequence` be replaced with `sequence.split(",")`. The created vector is used only to convert it to array. Using `split` returns the array.
>
> https://github.com/openjdk/jdk/blob/7170385dd8028ad8c2c84b619bee0ade3af3ff09/src/java.desktop/share/classes/sun/awt/FontConfiguration.java#L2118
Initially I was intended to do so (#11380), but I found that there is slight difference between `splitSequence` and `Strings.split` implementations. They handle empty _elements_ differently. So I think it's worth to create a separate issue to investigate if it's worth to change.
-------------
PR: https://git.openjdk.org/jdk/pull/11754
More information about the client-libs-dev
mailing list