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