Core/MemoryStream: Fix assertion trigger when writing zero-sized block

This commit is contained in:
Lynix 2017-12-09 20:34:07 +01:00
parent 7772d56c66
commit 24278dafdc
1 changed files with 10 additions and 6 deletions

View File

@ -130,15 +130,19 @@ namespace Nz
std::size_t MemoryStream::WriteBlock(const void* buffer, std::size_t size)
{
std::size_t endPos = static_cast<std::size_t>(m_pos + size);
if (endPos > m_buffer->GetSize())
m_buffer->Resize(endPos);
if (size > 0)
{
std::size_t endPos = static_cast<std::size_t>(m_pos + size);
if (endPos > m_buffer->GetSize())
m_buffer->Resize(endPos);
NazaraAssert(buffer, "Invalid buffer");
NazaraAssert(buffer, "Invalid buffer");
std::memcpy(m_buffer->GetBuffer() + m_pos, buffer, size);
std::memcpy(m_buffer->GetBuffer() + m_pos, buffer, size);
m_pos = endPos;
}
m_pos = endPos;
return size;
}
}