BinarySpanReaderWriter: Fix off-by-one error (#3230)

fix off-by-one error
This commit is contained in:
TheUbMunster 2024-06-22 19:12:04 -06:00 committed by GitHub
parent ccb76d1451
commit 4827e548be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -62,7 +62,7 @@ public:
private: private:
ALWAYS_INLINE bool Read(void* buf, size_t size) ALWAYS_INLINE bool Read(void* buf, size_t size)
{ {
if ((m_pos + size) < m_buf.size()) [[likely]] if ((m_pos + size) <= m_buf.size()) [[likely]]
{ {
std::memcpy(buf, &m_buf[m_pos], size); std::memcpy(buf, &m_buf[m_pos], size);
m_pos += size; m_pos += size;
@ -74,7 +74,7 @@ private:
ALWAYS_INLINE bool Peek(void* buf, size_t size) ALWAYS_INLINE bool Peek(void* buf, size_t size)
{ {
if ((m_pos + size) < m_buf.size()) [[likely]] if ((m_pos + size) <= m_buf.size()) [[likely]]
{ {
std::memcpy(buf, &m_buf[m_pos], size); std::memcpy(buf, &m_buf[m_pos], size);
return true; return true;
@ -119,7 +119,7 @@ public:
private: private:
ALWAYS_INLINE bool Write(void* buf, size_t size) ALWAYS_INLINE bool Write(void* buf, size_t size)
{ {
if ((m_pos + size) < m_buf.size()) [[likely]] if ((m_pos + size) <= m_buf.size()) [[likely]]
{ {
std::memcpy(&m_buf[m_pos], buf, size); std::memcpy(&m_buf[m_pos], buf, size);
m_pos += size; m_pos += size;