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);