aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Pet
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-01-03 13:47:24 +0100
committerShauren <shauren.trinity@gmail.com>2025-01-03 13:47:24 +0100
commitc72de2fbbcdf5b416d78b9e455aced43517033a8 (patch)
tree37f5ae48e795aff0f5a01a772bad2ee3c024dd91 /src/server/game/Entities/Pet
parent27860c3316b7354c6bf17cac82992085d2905934 (diff)
Core/Objects: Use span/array instead of vector for raw ObjectGuid manipulations
Diffstat (limited to 'src/server/game/Entities/Pet')
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index d7c84660747..eefb3349995 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -1189,7 +1189,11 @@ void Pet::_LoadAuras(PreparedQueryResult auraResult, PreparedQueryResult effectR
uint32 effectIndex = fields[3].GetUInt8();
if (effectIndex < MAX_SPELL_EFFECTS)
{
- casterGuid.SetRawValue(fields[0].GetBinary());
+ std::span<uint8 const> rawGuidBytes = fields[0].GetBinaryView();
+ if (rawGuidBytes.size() != ObjectGuid::BytesSize)
+ continue;
+
+ casterGuid.SetRawValue(rawGuidBytes);
if (casterGuid.IsEmpty())
casterGuid = GetGUID();
@@ -1211,7 +1215,11 @@ void Pet::_LoadAuras(PreparedQueryResult auraResult, PreparedQueryResult effectR
{
Field* fields = auraResult->Fetch();
// NULL guid stored - pet is the caster of the spell - see Pet::_SaveAuras
- casterGuid.SetRawValue(fields[0].GetBinary());
+ std::span<uint8 const> rawGuidBytes = fields[0].GetBinaryView();
+ if (rawGuidBytes.size() != ObjectGuid::BytesSize)
+ continue;
+
+ casterGuid.SetRawValue(rawGuidBytes);
if (casterGuid.IsEmpty())
casterGuid = GetGUID();