On Tue, 10 Jun 2025 15:41:47 GMT, Johannes Graham <d...@openjdk.org> wrote:

>> This PR replaces construction of intermediate strings to be parsed with more 
>> direct manipulation of numbers. It also has a more streamlined mechanism of 
>> handling `Long.MIN_VALUE` when parsing longs by using 
>> `Long.parseUnsignedLong`
>> 
>> As a small side-effect it also eliminates the use of a cached StringBuilder 
>> in DigitList.
>> 
>> Testing:
>> - GHA
>> - Local run of tier 2 and jtreg:jdk/java/text
>> - New benchmark: DecimalFormatParseBench
>
> Johannes Graham has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Address review comments

On our CI, I did a java_text JCK run as well as tiers 1-3 on all platforms 
which both came back good. I just have a final comment.

src/java.base/share/classes/jdk/internal/math/FloatingDecimal.java line 1841:

> 1839: 
> 1840:     static ASCIIToBinaryConverter readDoubleSignlessDigits(int decExp, 
> char[] digits, int length) {
> 1841:         if (decExp < MIN_DECIMAL_EXPONENT) {

Is this check needed? I think `ASCIIToBinaryConverter` will return the proper 
zero value when `doubleValue()` is invoked. 


  if (decExponent < MIN_DECIMAL_EXPONENT - 1) {
      return (isNegative) ? -0.0 : 0.0;


And if this explicit check is a shortcut, I don't think we would need one for 
an edge case.

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

PR Review: https://git.openjdk.org/jdk/pull/25644#pullrequestreview-2918990809
PR Review Comment: https://git.openjdk.org/jdk/pull/25644#discussion_r2141274926

Reply via email to