On Thu, 21 Sep 2023 16:16:42 GMT, Daniel Fuchs <[email protected]> wrote:
>> Claes Redestad has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Minor refactoring, drop unnecessary double cast
>
> src/java.base/share/classes/java/net/URLEncoder.java line 245:
>
>> 243: CharsetEncoder ce = charset.newEncoder();
>> 244: CharBuffer cb = CharBuffer.allocate(ENCODING_CHUNK_SIZE);
>> 245: ByteBuffer bb = ByteBuffer.allocate((int)(ENCODING_CHUNK_SIZE *
>> (double)ce.maxBytesPerChar()));
>
> The cast to (double) is curious
It's copied from `String::scale`:
private static int scale(int len, float expansionFactor) {
// We need to perform double, not float, arithmetic; otherwise
// we lose low order bits when len is larger than 2**24.
return (int)(len * (double)expansionFactor);
}
... though admittedly this caveat doesn't apply since `len` in our case is a
small constant value.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/15865#discussion_r1333461724