<i18n dev> RFR: 8370420: HostLocaleProviderAdapter_md.c from libjava can use GetLocaleInfoEx, GetCalendarInfoEx, EnumCalendarInfoExEx directly

Naoto Sato naoto at openjdk.org
Tue Nov 4 00:49:06 UTC 2025


On Mon, 3 Nov 2025 23:48:22 GMT, Justin Lu <jlu at openjdk.org> wrote:

> This PR cleans up some native code for Windows i18n functions. These particular calls are designed to run on Windows Vista and later. Since Vista (and older) are not supported Windows platforms, the calls no longer need to be checked if they are supported and can be called directly.
> 
> Reference to docs: https://learn.microsoft.com/en-us/windows/win32/api/winnls/nf-winnls-getlocaleinfoex.
> 
>> Minimum supported client: 	Windows Vista
>> Minimum supported server: 	Windows Server 2008

I think we can clean it further, as we don't need to call Win32 through their function pointers. Specifically,

typedef int (WINAPI *PGLIE)(const jchar *, LCTYPE, LPWSTR, int);
typedef int (WINAPI *PGCIE)(const jchar *, CALID, LPCWSTR, CALTYPE, LPWSTR, int, LPDWORD);
typedef int (WINAPI *PECIEE)(CALINFO_ENUMPROCEXEX, const jchar *, CALID, LPCWSTR, CALTYPE, LPARAM);
PGLIE pGetLocaleInfoEx;
PGCIE pGetCalendarInfoEx;
PECIEE pEnumCalendarInfoExEx;
BOOL initialized = FALSE;

and it's init code can all go away, IIUC

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

PR Comment: https://git.openjdk.org/jdk/pull/28119#issuecomment-3483228621


More information about the i18n-dev mailing list