That caching would not work if application uses DLL library which also call setlocate. Caches between EXE application and DLL library would not be shared and we have a new problem how to properly invalidate the cache. So I would rather avoid those caches and always use up-to-date value from ___lc_codepage_func even it is slow.
On Wednesday 31 December 2025 08:19:57 Kirill Makurin wrote: > I was wondering whether we could cache value returned by > `___lc_codepage_func` for crtdll.dll instead of parsing return from > `setlocale` every time. I was thinking maybe a wrapper around `setlocale` > which would parse it once after successful call? But I have a feeling this > would not work in all cases. > > - Kirill Makurin > ________________________________ > From: Pali Rohár <[email protected]> > Sent: Wednesday, December 31, 2025 4:27 AM > To: Kirill Makurin <[email protected]> > Cc: [email protected] > <[email protected]> > Subject: Re: [Mingw-w64-public] [PATCH 0/3] Improve mingw _cp helper functions > > Hm... right, it makes sense to use __mingw_isleadbyte_cp() also in > __mingw_mbrtowc_cp() as it gets the "cp" argument from the parent > function. > > On Tuesday 30 December 2025 19:16:35 Kirill Makurin wrote: > > From: Kirill Makurin <[email protected]> > > Sent: Wednesday, December 31, 2025 4:09 AM > > To: [email protected] > > <[email protected]> > > Subject: Re: [Mingw-w64-public] [PATCH 0/3] Improve mingw _cp helper > > functions > > > > Hi Pali, this patch series looks good to me. > > > > I suggest we use new __mingw_isleadbyte_cp in __mingw_mbrtowc_cp which > > currently uses isleadbyte. I think when I was looking through Microsoft > > header files, I noted that isleadbyte was guarded with WINAPI_FAMILY > > checks, so it may not be available to all types of apps (could you please > > check it if it is not too much trouble?). > > > > - Kirill Makurin > > ________________________________ > > From: Pali Rohár <[email protected]> > > Sent: Wednesday, December 31, 2025 3:29 AM > > To: [email protected] > > <[email protected]> > > Subject: [Mingw-w64-public] [PATCH 0/3] Improve mingw _cp helper functions > > > > Changes were applied on top of the 8d02d610f707b5f6af74653c6ebb0cdfa4df9212 > > > > Pali Rohár (3): > > crt: Improve __mingw_filename_cp() to work on systems without > > AreFileApisANSI() function > > crt: Add helper function __mingw_isleadbyte_cp() > > crt: Replace IsDBCSLeadByteEx() usage by __mingw_isleadbyte_cp() > > > > mingw-w64-crt/Makefile.am | 1 + > > mingw-w64-crt/misc/__mingw_filename_cp.c | 17 ++++++++-- > > mingw-w64-crt/misc/__mingw_isleadbyte_cp.c | 36 +++++++++++++++++++++ > > mingw-w64-crt/misc/dirname.c | 4 +-- > > mingw-w64-crt/stdio/__mingw_fix_stat_path.c | 2 +- > > mingw-w64-crt/testcases/t_btowc.c | 2 +- > > mingw-w64-headers/crt/locale.h | 3 ++ > > 7 files changed, 58 insertions(+), 7 deletions(-) > > create mode 100644 mingw-w64-crt/misc/__mingw_isleadbyte_cp.c > > > > -- > > 2.20.1 > > > > > > > > _______________________________________________ > > Mingw-w64-public mailing list > > [email protected] > > https://lists.sourceforge.net/lists/listinfo/mingw-w64-public _______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
