aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp3
-rw-r--r--src/server/game/Entities/Object/Object.cpp4
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp3
-rw-r--r--src/server/game/Server/WorldPacket.h20
-rw-r--r--src/server/shared/Packets/ByteBuffer.h22
5 files changed, 32 insertions, 20 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index f5a339c4d5c..25031d5c04c 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -2945,8 +2945,7 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio
ByteBuffer HexToBytes(const std::string& hex)
{
- ByteBuffer buffer;
- buffer.resize(hex.length() / 2);
+ ByteBuffer buffer(hex.length() / 2, ByteBuffer::Resize{});
HexStrToByteArray(hex, buffer.contents());
return buffer;
}
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 5e79eb1316c..53aa451792e 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -211,7 +211,7 @@ void Object::BuildCreateUpdateBlockForPlayer(UpdateData* data, Player* target) c
if (unit->GetVictim())
flags.CombatVictim = true;
- ByteBuffer buf(0x400);
+ ByteBuffer buf(0x400, ByteBuffer::Reserve{});
buf << uint8(updateType);
buf << GetGUID();
buf << uint8(objectType);
@@ -265,7 +265,7 @@ void Object::BuildOutOfRangeUpdateBlock(UpdateData* data) const
ByteBuffer Object::PrepareValuesUpdateBuffer() const
{
- ByteBuffer buffer(500);
+ ByteBuffer buffer(500, ByteBuffer::Reserve{});
buffer << uint8(UPDATETYPE_VALUES);
buffer << GetGUID();
return buffer;
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 04489bbb744..11b838d090e 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -649,8 +649,7 @@ void WorldSession::HandleUpdateAccountData(WorldPackets::ClientConfig::UserClien
return;
}
- ByteBuffer dest;
- dest.resize(packet.Size);
+ ByteBuffer dest(packet.Size, ByteBuffer::Resize{});
uLongf realSize = packet.Size;
if (uncompress(dest.contents(), &realSize, packet.CompressedData.contents(), packet.CompressedData.size()) != Z_OK)
diff --git a/src/server/game/Server/WorldPacket.h b/src/server/game/Server/WorldPacket.h
index 31dee778817..99e06b2b1cd 100644
--- a/src/server/game/Server/WorldPacket.h
+++ b/src/server/game/Server/WorldPacket.h
@@ -25,21 +25,27 @@ class WorldPacket : public ByteBuffer
{
public:
// just container for later use
- WorldPacket() : ByteBuffer(0), m_opcode(UNKNOWN_OPCODE), _connection(CONNECTION_TYPE_DEFAULT)
+ WorldPacket() : ByteBuffer(0, Reserve{}), m_opcode(UNKNOWN_OPCODE), _connection(CONNECTION_TYPE_DEFAULT)
{
}
- WorldPacket(uint32 opcode, size_t res = 200, ConnectionType connection = CONNECTION_TYPE_DEFAULT) : ByteBuffer(res),
+ WorldPacket(uint32 opcode, ConnectionType connection = CONNECTION_TYPE_DEFAULT) : ByteBuffer(0, Reserve{}),
m_opcode(opcode), _connection(connection) { }
- WorldPacket(WorldPacket&& packet) : ByteBuffer(std::move(packet)), m_opcode(packet.m_opcode), _connection(packet._connection)
- {
- }
+ WorldPacket(uint32 opcode, size_t res, Reserve, ConnectionType connection = CONNECTION_TYPE_DEFAULT) : ByteBuffer(res, Reserve{}),
+ m_opcode(opcode), _connection(connection) { }
- WorldPacket(WorldPacket const& right) : ByteBuffer(right), m_opcode(right.m_opcode), _connection(right._connection)
+ WorldPacket(uint32 opcode, size_t res, Resize, ConnectionType connection = CONNECTION_TYPE_DEFAULT) : ByteBuffer(res, Resize{}),
+ m_opcode(opcode), _connection(connection) { }
+
+ WorldPacket(uint32 opcode, size_t res, ConnectionType connection = CONNECTION_TYPE_DEFAULT) : WorldPacket(opcode, res, Reserve{}, connection) { }
+
+ WorldPacket(WorldPacket&& packet) noexcept : ByteBuffer(std::move(packet)), m_opcode(packet.m_opcode), _connection(packet._connection)
{
}
+ WorldPacket(WorldPacket const& right) = default;
+
WorldPacket& operator=(WorldPacket const& right)
{
if (this != &right)
@@ -52,7 +58,7 @@ class WorldPacket : public ByteBuffer
return *this;
}
- WorldPacket& operator=(WorldPacket&& right)
+ WorldPacket& operator=(WorldPacket&& right) noexcept
{
if (this != &right)
{
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index abd00078911..296da13dafe 100644
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -30,7 +30,7 @@ class MessageBuffer;
class TC_SHARED_API ByteBufferException : public std::exception
{
public:
- ~ByteBufferException() noexcept { }
+ ~ByteBufferException() noexcept = default;
char const* what() const noexcept override { return msg_.c_str(); }
@@ -46,7 +46,7 @@ class TC_SHARED_API ByteBufferPositionException : public ByteBufferException
public:
ByteBufferPositionException(size_t pos, size_t size, size_t valueSize);
- ~ByteBufferPositionException() noexcept { }
+ ~ByteBufferPositionException() noexcept = default;
};
class TC_SHARED_API ByteBuffer
@@ -61,16 +61,24 @@ class TC_SHARED_API ByteBuffer
_storage.reserve(DEFAULT_SIZE);
}
- ByteBuffer(size_t reserve) : _rpos(0), _wpos(0), _bitpos(InitialBitPos), _curbitval(0)
+ // reserve/resize tag
+ struct Reserve { };
+ struct Resize { };
+
+ 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)
{
- _storage.reserve(reserve);
+ _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) : _rpos(right._rpos), _wpos(right._wpos),
- _bitpos(right._bitpos), _curbitval(right._curbitval), _storage(right._storage) { }
+ ByteBuffer(ByteBuffer const& right) = default;
ByteBuffer(MessageBuffer&& buffer);
@@ -111,7 +119,7 @@ class TC_SHARED_API ByteBuffer
return *this;
}
- virtual ~ByteBuffer() { }
+ virtual ~ByteBuffer() = default;
void clear()
{