RFR: 8310929: Optimization for Integer.toString [v12]
温绍锦
duke at openjdk.org
Thu Jul 20 09:22:48 UTC 2023
On Mon, 17 Jul 2023 20:54:25 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> 温绍锦 has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Integer/Long toString test against compact strings
>>
>> Co-authored-by: liach <liach at users.noreply.github.com>
>
> src/java.base/share/classes/java/lang/Long.java line 559:
>
>> 557: Unsafe.ARRAY_BYTE_BASE_OFFSET + charPos,
>> 558: Integer.PACKED_DIGITS[(int)((q * 100) - i)],
>> 559: false);
>
> Add the array bound check for the store of the characters.
I added assert with reference to the implementation of StringUTF16#putChar, is this safe enough?
> src/java.base/share/classes/java/lang/Long.java line 584:
>
>> 582: Unsafe.ARRAY_BYTE_BASE_OFFSET + charPos,
>> 583: Integer.PACKED_DIGITS[-i2],
>> 584: false);
>
> Replace the implicit array bounds check with an explicit array index check if using Unsafe.
I added assert with reference to the implementation of StringUTF16#putChar, is this safe enough?
> src/java.base/share/classes/java/lang/StringUTF16.java line 1595:
>
>> 1593: PACKED_DIGITS_UTF16[-i]);
>> 1594: } else {
>> 1595: putChar(buf, --charPos, '0' - i);
>
> Ditto add explicit array bounds check when using Unsafe, especially since the method is used outside of the source file. Here and in the uses of Unsafe below.
I added assert with reference to the implementation of StringUTF16#putChar, is this safe enough?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14699#discussion_r1269188797
PR Review Comment: https://git.openjdk.org/jdk/pull/14699#discussion_r1269188920
PR Review Comment: https://git.openjdk.org/jdk/pull/14699#discussion_r1269189024
More information about the core-libs-dev
mailing list