Skip to content

Commit d3066de

Browse files
MemoryFileStream: skip zero-size reads/writes
1 parent 2cda78a commit d3066de

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

Common/src/MemoryFileStream.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2019-2024 Diligent Graphics LLC
2+
* Copyright 2019-2025 Diligent Graphics LLC
33
* Copyright 2015-2019 Egor Yusov
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -49,7 +49,12 @@ IMPLEMENT_QUERY_INTERFACE(MemoryFileStream, IID_FileStream, TBase)
4949

5050
bool MemoryFileStream::Read(void* Data, size_t Size)
5151
{
52-
VERIFY_EXPR(m_CurrentOffset <= m_DataBlob->GetSize());
52+
if (Size == 0)
53+
return true;
54+
55+
if (m_CurrentOffset + Size > m_DataBlob->GetSize())
56+
return false;
57+
5358
size_t BytesLeft = m_DataBlob->GetSize() - m_CurrentOffset;
5459
size_t BytesToRead = std::min(BytesLeft, Size);
5560
const void* pSrcData = m_DataBlob->GetConstDataPtr(m_CurrentOffset);
@@ -69,6 +74,9 @@ void MemoryFileStream::ReadBlob(IDataBlob* pData)
6974

7075
bool MemoryFileStream::Write(const void* Data, size_t Size)
7176
{
77+
if (Size == 0)
78+
return true;
79+
7280
if (m_CurrentOffset + Size > m_DataBlob->GetSize())
7381
{
7482
m_DataBlob->Resize(m_CurrentOffset + Size);

0 commit comments

Comments
 (0)