diff options
author | Zufu Liu <unknown> | 2019-04-11 07:30:08 +1000 |
---|---|---|
committer | Zufu Liu <unknown> | 2019-04-11 07:30:08 +1000 |
commit | f0d4a6e672afca34ad4c3a36e9e163239ea2f3cc (patch) | |
tree | ea51727a6436a8d4318e26a44bfccfad35e2c695 | |
parent | ea526b34712555ba4f667fa68298513f9d51f1c6 (diff) | |
download | scintilla-mirror-f0d4a6e672afca34ad4c3a36e9e163239ea2f3cc.tar.gz |
Use views for input string parameters as that allows calling with more varied
values and can avoid allocations.
Switched &[0] to data() to avoid some warnings.
-rw-r--r-- | win32/ScintillaWin.cxx | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/win32/ScintillaWin.cxx b/win32/ScintillaWin.cxx index b0869a8d7..165e0651f 100644 --- a/win32/ScintillaWin.cxx +++ b/win32/ScintillaWin.cxx @@ -754,31 +754,31 @@ int WideCharLenFromMultiByte(UINT codePage, std::string_view sv) noexcept { return WideCharFromMultiByte(codePage, sv, nullptr, 0); } -std::string StringEncode(const std::wstring &s, int codePage) { - const int cchMulti = s.length() ? MultiByteLenFromWideChar(codePage, s) : 0; +std::string StringEncode(std::wstring_view wsv, int codePage) { + const int cchMulti = wsv.length() ? MultiByteLenFromWideChar(codePage, wsv) : 0; std::string sMulti(cchMulti, 0); if (cchMulti) { - MultiByteFromWideChar(codePage, s, &sMulti[0], cchMulti); + MultiByteFromWideChar(codePage, wsv, sMulti.data(), cchMulti); } return sMulti; } -std::wstring StringDecode(const std::string &s, int codePage) { - const int cchWide = s.length() ? WideCharLenFromMultiByte(codePage, s) : 0; +std::wstring StringDecode(std::string_view sv, int codePage) { + const int cchWide = sv.length() ? WideCharLenFromMultiByte(codePage, sv) : 0; std::wstring sWide(cchWide, 0); if (cchWide) { - WideCharFromMultiByte(codePage, s, &sWide[0], cchWide); + WideCharFromMultiByte(codePage, sv, sWide.data(), cchWide); } return sWide; } -std::wstring StringMapCase(const std::wstring &ws, DWORD mapFlags) { +std::wstring StringMapCase(std::wstring_view wsv, DWORD mapFlags) { const int charsConverted = ::LCMapStringW(LOCALE_SYSTEM_DEFAULT, mapFlags, - ws.c_str(), static_cast<int>(ws.length()), nullptr, 0); + wsv.data(), static_cast<int>(wsv.length()), nullptr, 0); std::wstring wsConverted(charsConverted, 0); if (charsConverted) { ::LCMapStringW(LOCALE_SYSTEM_DEFAULT, mapFlags, - ws.c_str(), static_cast<int>(ws.length()), &wsConverted[0], charsConverted); + wsv.data(), static_cast<int>(wsv.length()), wsConverted.data(), charsConverted); } return wsConverted; } |