diff --git a/src/lib/icu/Win32.cxx b/src/lib/icu/Win32.cxx index f59de59d7..e8a8b1086 100644 --- a/src/lib/icu/Win32.cxx +++ b/src/lib/icu/Win32.cxx @@ -35,13 +35,13 @@ WideCharToMultiByte(unsigned code_page, std::wstring_view src) throw MakeLastError("Failed to convert from Unicode"); auto buffer = std::make_unique(length + 1); - buffer[length] = '\0'; length = WideCharToMultiByte(code_page, 0, src.data(), src.size(), - buffer.get(), length + 1, + buffer.get(), length, nullptr, nullptr); if (length <= 0) throw MakeLastError("Failed to convert from Unicode"); + buffer[length] = '\0'; return AllocatedString::Donate(buffer.release()); } @@ -54,11 +54,11 @@ MultiByteToWideChar(unsigned code_page, std::string_view src) throw MakeLastError("Failed to convert to Unicode"); auto buffer = std::make_unique(length + 1); - buffer[length] = L'\0'; length = MultiByteToWideChar(code_page, 0, src.data(), src.size(), - buffer.get(), length + 1); + buffer.get(), length); if (length <= 0) throw MakeLastError("Failed to convert to Unicode"); + buffer[length] = L'\0'; return AllocatedString::Donate(buffer.release()); }