From 85e621f01adf84ee66e20f8b75c93be7b4940cb2 Mon Sep 17 00:00:00 2001 From: Shauren Date: Fri, 23 May 2025 14:41:39 +0200 Subject: Core/PacketIO: Remove ByteBuffer constructor from MessageBuffer --- src/server/shared/Packets/ByteBuffer.h | 42 +++++++++++----------------------- 1 file changed, 13 insertions(+), 29 deletions(-) (limited to 'src/server/shared/Packets/ByteBuffer.h') diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h index f61a72f3664..94c22206aa0 100644 --- a/src/server/shared/Packets/ByteBuffer.h +++ b/src/server/shared/Packets/ByteBuffer.h @@ -25,8 +25,6 @@ #include #include -class MessageBuffer; - // Root of ByteBuffer exception hierarchy class TC_SHARED_API ByteBufferException : public std::exception { @@ -58,34 +56,32 @@ class TC_SHARED_API ByteBuffer constexpr static size_t DEFAULT_SIZE = 0x1000; constexpr static uint8 InitialBitPos = 8; - // constructor - ByteBuffer() : _rpos(0), _wpos(0), _bitpos(InitialBitPos), _curbitval(0) - { - _storage.reserve(DEFAULT_SIZE); - } - // reserve/resize tag struct Reserve { }; struct Resize { }; - ByteBuffer(size_t size, Reserve) : _rpos(0), _wpos(0), _bitpos(InitialBitPos), _curbitval(0) + // constructor + explicit ByteBuffer() : ByteBuffer(DEFAULT_SIZE, Reserve{}) { } + + explicit ByteBuffer(size_t size, Reserve) : _rpos(0), _wpos(0), _bitpos(InitialBitPos), _curbitval(0) { _storage.reserve(size); } - ByteBuffer(size_t size, Resize) : _rpos(0), _wpos(size), _bitpos(InitialBitPos), _curbitval(0) + explicit ByteBuffer(size_t size, Resize) : _rpos(0), _wpos(size), _bitpos(InitialBitPos), _curbitval(0) { _storage.resize(size); } - ByteBuffer(ByteBuffer&& buf) noexcept : _rpos(buf._rpos), _wpos(buf._wpos), - _bitpos(buf._bitpos), _curbitval(buf._curbitval), _storage(buf.Move()) { } - ByteBuffer(ByteBuffer const& right) = default; - ByteBuffer(MessageBuffer&& buffer); + ByteBuffer(ByteBuffer&& buf) noexcept : _rpos(buf._rpos), _wpos(buf._wpos), + _bitpos(buf._bitpos), _curbitval(buf._curbitval), _storage(std::move(buf).Release()) { } + + explicit ByteBuffer(std::vector&& buffer) noexcept : _rpos(0), _wpos(buffer.size()), + _bitpos(InitialBitPos), _curbitval(0), _storage(std::move(buffer)) { } - std::vector&& Move() noexcept + std::vector&& Release() && noexcept { _rpos = 0; _wpos = 0; @@ -94,19 +90,7 @@ class TC_SHARED_API ByteBuffer return std::move(_storage); } - ByteBuffer& operator=(ByteBuffer const& right) - { - if (this != &right) - { - _rpos = right._rpos; - _wpos = right._wpos; - _bitpos = right._bitpos; - _curbitval = right._curbitval; - _storage = right._storage; - } - - return *this; - } + ByteBuffer& operator=(ByteBuffer const& right) = default; ByteBuffer& operator=(ByteBuffer&& right) noexcept { @@ -116,7 +100,7 @@ class TC_SHARED_API ByteBuffer _wpos = right._wpos; _bitpos = right._bitpos; _curbitval = right._curbitval; - _storage = right.Move(); + _storage = std::move(right).Release(); } return *this; -- cgit v1.2.3