From 45c947faf1dbf67dd7b4132a0c223cf1daa49ebb Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 28 Aug 2022 17:54:49 +0200 Subject: [PATCH] Core/PoolByteStream: Fix pool returning on Reset --- include/Nazara/Core/PoolByteStream.hpp | 2 -- src/Nazara/Core/PoolByteStream.cpp | 8 ++++++-- 2 files changed, 6 insertions(+), 4 deletions(-) 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()