diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-01-03 13:47:24 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-01-03 13:47:24 +0100 |
commit | c72de2fbbcdf5b416d78b9e455aced43517033a8 (patch) | |
tree | 37f5ae48e795aff0f5a01a772bad2ee3c024dd91 /src/server/game/Entities/Pet | |
parent | 27860c3316b7354c6bf17cac82992085d2905934 (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.cpp | 12 |
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(); |