aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-12-19 19:45:58 +0100
committerOvahlord <dreadkiller@gmx.de>2024-12-20 15:34:31 +0100
commit41d075b01af5e26e5dd46bd5afdcce349435d26e (patch)
treed8bc1870da38db4560317c8c4eabc930eb70c3a9
parenta98256c57a335e91ad93bc9f6bcd9d671877ec3d (diff)
Core/PacketIO: Read directly into output variable for numeric ByteBuffer::operator>> overloads
(cherry picked from commit 5a1fe849783d0a9b41ce77eca565f3cfc2dfb197)
-rw-r--r--src/server/shared/Packets/ByteBuffer.cpp4
-rw-r--r--src/server/shared/Packets/ByteBuffer.h16
2 files changed, 10 insertions, 10 deletions
diff --git a/src/server/shared/Packets/ByteBuffer.cpp b/src/server/shared/Packets/ByteBuffer.cpp
index a575e52bc1e..994cd371968 100644
--- a/src/server/shared/Packets/ByteBuffer.cpp
+++ b/src/server/shared/Packets/ByteBuffer.cpp
@@ -41,7 +41,7 @@ ByteBufferInvalidValueException::ByteBufferInvalidValueException(char const* typ
ByteBuffer& ByteBuffer::operator>>(float& value)
{
- value = read<float>();
+ read(&value, 1);
if (!std::isfinite(value))
throw ByteBufferInvalidValueException("float", "infinity");
return *this;
@@ -49,7 +49,7 @@ ByteBuffer& ByteBuffer::operator>>(float& value)
ByteBuffer& ByteBuffer::operator>>(double& value)
{
- value = read<double>();
+ read(&value, 1);
if (!std::isfinite(value))
throw ByteBufferInvalidValueException("double", "infinity");
return *this;
diff --git a/src/server/shared/Packets/ByteBuffer.h b/src/server/shared/Packets/ByteBuffer.h
index 0f9d3f753d3..d4aeb2e5d80 100644
--- a/src/server/shared/Packets/ByteBuffer.h
+++ b/src/server/shared/Packets/ByteBuffer.h
@@ -320,50 +320,50 @@ class TC_SHARED_API ByteBuffer
ByteBuffer& operator>>(uint8& value)
{
- value = read<uint8>();
+ read(&value, 1);
return *this;
}
ByteBuffer& operator>>(uint16& value)
{
- value = read<uint16>();
+ read(&value, 1);
return *this;
}
ByteBuffer& operator>>(uint32& value)
{
- value = read<uint32>();
+ read(&value, 1);
return *this;
}
ByteBuffer& operator>>(uint64& value)
{
- value = read<uint64>();
+ read(&value, 1);
return *this;
}
//signed as in 2e complement
ByteBuffer& operator>>(int8& value)
{
- value = read<int8>();
+ read(&value, 1);
return *this;
}
ByteBuffer& operator>>(int16& value)
{
- value = read<int16>();
+ read(&value, 1);
return *this;
}
ByteBuffer& operator>>(int32& value)
{
- value = read<int32>();
+ read(&value, 1);
return *this;
}
ByteBuffer& operator>>(int64& value)
{
- value = read<int64>();
+ read(&value, 1);
return *this;
}