RFR: 8343962: [REDO] Move getChars to DecimalDigits [v5]
Shaojin Wen
swen at openjdk.org
Tue Dec 10 14:48:54 UTC 2024
> This PR is a resubmission after PR #21593 was rolled back, and the unsafe offset overflow issue has been fixed.
>
> 1) Move getChars methods of StringLatin1 and StringUTF16 to DecimalDigits to reduce duplication.
>
> 2) HexDigits and OctalDigits also include getCharsLatin1 and getCharsUTF16
>
> 3) Putting these two methods into DecimalDigits can avoid the need to expose them in JavaLangAccess
> Eliminate duplicate code in BigDecimal
>
> 4) This PR will improve the performance of Integer/Long.toString and StringBuilder.append(int/long) scenarios. This is because Unsafe.putByte is used to eliminate array bounds checks, and of course this elimination is safe. In previous versions, in Integer/Long.toString and StringBuilder.append(int/long) scenarios, -COMPACT_STRING performed better than +COMPACT_STRING. This is because StringUTF16.getChars uses StringUTF16.putChar, which is similar to Unsafe.putChar, and there is no bounds check.
Shaojin Wen has updated the pull request incrementally with one additional commit since the last revision:
form @cl4es
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/22023/files
- new: https://git.openjdk.org/jdk/pull/22023/files/a05c2f5f..72ff93f2
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=22023&range=04
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=22023&range=03-04
Stats: 5 lines in 1 file changed: 3 ins; 2 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/22023.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22023/head:pull/22023
PR: https://git.openjdk.org/jdk/pull/22023
More information about the core-libs-dev
mailing list