Fixed StringView::GetText() related issued pointed out in review.

This commit is contained in:
Zbigniew Skowron
2021-08-09 22:09:06 +02:00
parent aecc81f5e5
commit bd70e53806
4 changed files with 10 additions and 7 deletions

View File

@@ -23,9 +23,12 @@ void WindowsClipboard::Clear()
void WindowsClipboard::SetText(const StringView& text)
{
const int32 size = (text.Length() + 1) * sizeof(Char);
const HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, size);
Platform::MemoryCopy(GlobalLock(hMem), String(text).GetText(), size);
const int32 sizeWithoutNull = text.Length() * sizeof(Char);
const HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, sizeWithoutNull + sizeof(Char));
Char* pMem = static_cast<Char*>(GlobalLock(hMem));
Platform::MemoryCopy(pMem, text.GetNonTerminatedText(), sizeWithoutNull);
Platform::MemorySet(pMem + text.Length(), sizeof(Char), 0);
GlobalUnlock(hMem);
OpenClipboard(nullptr);

View File

@@ -1111,7 +1111,7 @@ int32 WindowsPlatform::RunProcess(const StringView& cmdLine, const StringView& w
// Create the process
PROCESS_INFORMATION procInfo;
if (!CreateProcessW(nullptr, const_cast<LPWSTR>(String(cmdLine).GetText()), nullptr, nullptr, TRUE, dwCreationFlags, (LPVOID)environmentStr, String(workingDir).GetText(), &startupInfoEx.StartupInfo, &procInfo))
if (!CreateProcessW(nullptr, const_cast<LPWSTR>(String(cmdLine).GetText()), nullptr, nullptr, TRUE, dwCreationFlags, (LPVOID)environmentStr, workingDir.HasChars() ? workingDir.Get() : nullptr, &startupInfoEx.StartupInfo, &procInfo))
{
LOG(Warning, "Cannot start process '{0}'. Error code: 0x{1:x}", cmdLine, static_cast<int64>(GetLastError()));
goto ERROR_EXIT;