From 884e51fea604dcdba95d13dfdd9f4ad108d0521a Mon Sep 17 00:00:00 2001 From: Dan Engelbrecht Date: Mon, 22 Jan 2024 10:33:15 +0100 Subject: make sure to advance read buffer pointer in BasicFileWriter::Write (#633) --- src/zenutil/basicfile.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/zenutil/basicfile.cpp') diff --git a/src/zenutil/basicfile.cpp b/src/zenutil/basicfile.cpp index 819d0805d..dbae76717 100644 --- a/src/zenutil/basicfile.cpp +++ b/src/zenutil/basicfile.cpp @@ -712,6 +712,7 @@ BasicFileWriter::Write(void* Data, uint64_t Size, uint64_t FileOffset) m_BufferStart = m_BufferEnd = FileOffset; } + const uint8_t* DataPtr = (const uint8_t*)Data; while (Size) { const uint64_t RemainingBufferCapacity = m_BufferStart + m_BufferSize - m_BufferEnd; @@ -721,11 +722,12 @@ BasicFileWriter::Write(void* Data, uint64_t Size, uint64_t FileOffset) ZEN_ASSERT_SLOW(BufferWriteOffset < m_BufferSize); ZEN_ASSERT_SLOW((BufferWriteOffset + BlockWriteBytes) <= m_BufferSize); - memcpy(m_Buffer + BufferWriteOffset, Data, BlockWriteBytes); + memcpy(m_Buffer + BufferWriteOffset, DataPtr, BlockWriteBytes); Size -= BlockWriteBytes; m_BufferEnd += BlockWriteBytes; FileOffset += BlockWriteBytes; + DataPtr += BlockWriteBytes; if ((m_BufferEnd - m_BufferStart) == m_BufferSize) { -- cgit v1.2.3