On Tue, 15 Apr 2025 17:04:35 GMT, Naoto Sato <na...@openjdk.org> wrote:

>> Remove the #ifdef MACOSX from platform-independent System.c, which (on Mac) 
>> sets native.encoding from sprops.encoding or (on non-Mac Unix and Windows) 
>> sets native.encoding from sprops.sun_jnu_encoding. After this removal, the 
>> native.encoding property will be set from sprops.encoding and the 
>> sun.jnu.encoding property will be set from sprops.sun_jnu_encoding.
>> 
>> Change the windows java_props_md.c so that it initializes 
>> sprops.sun_jnu_encoding and then copies that value to sprops.encoding. 
>> Previously, sprops.encoding was initialized with data from other Windows 
>> APIs, but this value was ignored by platform-independent code, which was 
>> kind of confusing.
>> 
>> There are no changes to the Unix (Mac & non-Mac) platform-specific code. It 
>> already has code to set sprops.encoding and sprops.sun_jnu_encoding 
>> properly, including macOS-specific code to set the latter to UTF-8 
>> unconditionally.
>> 
>> There should be no behavior changes on any platform.
>> 
>> I changed variable names in windows/java_props_md.c to make it clear that 
>> the values stored into them are unused. Of course there are other 
>> possibilities here, such as changing the interface to SetupI18nProps(). I'm 
>> open to suggestions.
>
> src/java.base/share/native/libjava/System.c line 151:
> 
>> 149:     /* basic encoding properties, always non-NULL */
>> 150:     PUTPROP(propArray, _native_encoding_NDX, sprops->encoding);
>> 151:     PUTPROP(propArray, _sun_jnu_encoding_NDX, sprops->sun_jnu_encoding);
> 
> Since we now got rid of platform depenence here, would it make sense to 
> perform non-null assertion in Java level here? I remember in the last PR we 
> added `assert` in platform C code.

`Java level` -> `Platform independent C level`
Sorry

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24607#discussion_r2045102627

Reply via email to