On Fri, 4 Apr 2025 23:42:26 GMT, Stuart Marks <sma...@openjdk.org> wrote:

> Some of the code that creates various encoding properties at JVM 
> initialization time, such as file.encoding and native.encoding, could use 
> some cleaning up. Cleanup is fairly minimal and should be mostly 
> behavior-preserving. Changes include the following:
> 
> * In the java_props.h and java_props_md.c files, add documentation and 
> asserts that the sprops.encoding and sprops.sun_jnu_encoding members are 
> always set to non-NULL by the platform-specific code.
> 
> * In SystemProps.java, remove a null check that is now extraneous based on 
> the above assertion.
> 
> * In SystemProps.java, rearrange logic (with no behavior change) around 
> handling of the "COMPAT" value for the file.encoding property.
> 
> * In SystemProps.Raw, rename the platform properties array index from 
> _file_encoding_NDX to _native_encoding_NDX.
> 
> * In SystemProps.Raw.cmdProperties(), adjust the HashMap size computation. 
> This should actually avoid resizing of the HashMap (unlike the earlier code).
> 
> * Adjust various comments in several places for clarity and correctness.

Thanks for the clean-up. Changing the index name from `_file_encoding_NDX` to 
`_native_encoding_NDX` really helps.

src/java.base/share/native/libjava/System.c line 153:

> 151:     /*
> 152:      * Since sun_jnu_encoding is now hard-coded to UTF-8 on Mac, we don't
> 153:      * want to use it to overwrite file.encoding

This `file.encoding` can also be renamed. Should have been done with JEP 400

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

PR Review: https://git.openjdk.org/jdk/pull/24463#pullrequestreview-2747544328
PR Review Comment: https://git.openjdk.org/jdk/pull/24463#discussion_r2031675274

Reply via email to