diff --git a/include/Nazara/Core/PoolByteStream.hpp b/include/Nazara/Core/PoolByteStream.hpp index 394a50c88..2c493358d 100644 --- a/include/Nazara/Core/PoolByteStream.hpp +++ b/include/Nazara/Core/PoolByteStream.hpp @@ -18,8 +18,6 @@ namespace Nz class NAZARA_CORE_API PoolByteStream : public ByteStream { - friend class Network; - public: inline PoolByteStream(ByteArrayPool& pool); inline PoolByteStream(ByteArrayPool& pool, std::size_t capacity); diff --git a/src/Nazara/Core/PoolByteStream.cpp b/src/Nazara/Core/PoolByteStream.cpp index 26c5a8da1..26c7b41da 100644 --- a/src/Nazara/Core/PoolByteStream.cpp +++ b/src/Nazara/Core/PoolByteStream.cpp @@ -28,9 +28,13 @@ namespace Nz void PoolByteStream::Reset(std::size_t capacity) { if (m_buffer.GetCapacity() < capacity) - m_buffer = m_pool.GetByteArray(capacity); + { + if (m_buffer.GetCapacity() > 0) + m_pool.ReturnByteArray(std::move(m_buffer)); - SetStream(&m_buffer, Nz::OpenMode_ReadWrite); + m_buffer = m_pool.GetByteArray(capacity); + SetStream(&m_buffer, Nz::OpenMode_ReadWrite); + } } void PoolByteStream::OnEmptyStream()