SimpCfg:CheckStrings: Switch Mbs2Wcs to multithread safe calls

This commit is contained in:
HanishKVC 2024-05-02 22:41:09 +05:30
parent 23acf07bb2
commit 2325764180

View file

@ -45,9 +45,11 @@ size_t wcs_to_mbs(std::string &sDest, const std::wstring &wSrc) {
} }
size_t mbs_to_wcs(std::wstring &wDest, std::string &sSrc) { size_t mbs_to_wcs(std::wstring &wDest, std::string &sSrc) {
auto reqLen = std::mbstowcs(nullptr, sSrc.c_str(), 0); std::mbstate_t mbState = std::mbstate_t();
const char *sSrcP = sSrc.c_str();
auto reqLen = std::mbsrtowcs(nullptr, &sSrcP, 0, &mbState);
wDest.resize(reqLen); wDest.resize(reqLen);
return std::mbstowcs(wDest.data(), sSrc.c_str(), wDest.length()); return std::mbsrtowcs(wDest.data(), &sSrcP, wDest.length(), &mbState);
} }
// Remove chars from begin and end of the passed string, provided the char belongs // Remove chars from begin and end of the passed string, provided the char belongs