diff options
author | Treeston <treeston.mmoc@gmail.com> | 2020-08-04 17:03:26 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-26 14:36:42 +0100 |
commit | fa8ab6eb98395ed468046c261fe120082d4e019b (patch) | |
tree | 333571676b0dd323744154b86167fce5d184e851 | |
parent | 41fe9a84d499a56e2631e20970d33367d7585391 (diff) |
Core/Common: Move old-style pointer+size HexStr methods to Trinity::Impl where they can't hurt anyone
(cherry picked from commit 7b8b999516a824b0c417631a77f133eb47b8b2f4)
-rw-r--r-- | src/common/Utilities/Util.cpp | 8 | ||||
-rw-r--r-- | src/common/Utilities/Util.h | 17 | ||||
-rw-r--r-- | src/server/game/Conditions/ConditionMgr.cpp | 2 | ||||
-rw-r--r-- | src/server/shared/Realm/RealmList.cpp | 4 |
4 files changed, 18 insertions, 13 deletions
diff --git a/src/common/Utilities/Util.cpp b/src/common/Utilities/Util.cpp index e443e77125b..42f87c36991 100644 --- a/src/common/Utilities/Util.cpp +++ b/src/common/Utilities/Util.cpp @@ -794,7 +794,7 @@ bool Utf8ToUpperOnlyLatin(std::string& utf8String) return WStrToUtf8(wstr, utf8String); } -std::string ByteArrayToHexStr(uint8 const* bytes, size_t arrayLen, bool reverse /* = false */) +std::string Trinity::Impl::ByteArrayToHexStr(uint8 const* bytes, size_t arrayLen, bool reverse /* = false */) { int32 init = 0; int32 end = arrayLen; @@ -818,11 +818,9 @@ std::string ByteArrayToHexStr(uint8 const* bytes, size_t arrayLen, bool reverse return ss.str(); } -void HexStrToByteArray(std::string const& str, uint8* out, bool reverse /*= false*/) +void Trinity::Impl::HexStrToByteArray(std::string const& str, uint8* out, size_t outlen, bool reverse /*= false*/) { - // string must have even number of characters - if (str.length() & 1) - return; + ASSERT(str.size() == (2 * outlen)); int32 init = 0; int32 end = int32(str.length()); diff --git a/src/common/Utilities/Util.h b/src/common/Utilities/Util.h index f34b6d6ad96..18a380ea9b4 100644 --- a/src/common/Utilities/Util.h +++ b/src/common/Utilities/Util.h @@ -340,15 +340,22 @@ TC_COMMON_API bool IsIPAddress(char const* ipaddress); TC_COMMON_API uint32 CreatePIDFile(std::string const& filename); TC_COMMON_API uint32 GetPID(); -TC_COMMON_API std::string ByteArrayToHexStr(uint8 const* bytes, size_t length, bool reverse = false); +namespace Trinity::Impl +{ + TC_COMMON_API std::string ByteArrayToHexStr(uint8 const* bytes, size_t length, bool reverse = false); + TC_COMMON_API void HexStrToByteArray(std::string const& str, uint8* out, size_t outlen, bool reverse = false); +} + template <typename Container> -std::string ByteArrayToHexStr(Container const& c, bool reverse = false) { return ByteArrayToHexStr(std::data(c), std::size(c), reverse); } -TC_COMMON_API void HexStrToByteArray(std::string const& str, uint8* out, bool reverse = false); +std::string ByteArrayToHexStr(Container const& c, bool reverse = false) +{ + return Trinity::Impl::ByteArrayToHexStr(std::data(c), std::size(c), reverse); +} + template <size_t Size> void HexStrToByteArray(std::string const& str, std::array<uint8, Size>& buf, bool reverse = false) { - ASSERT(str.size() == (2 * Size)); - HexStrToByteArray(str, buf.data(), reverse); + Trinity::Impl::HexStrToByteArray(str, buf.data(), Size, reverse); } template <size_t Size> std::array<uint8, Size> HexStrToByteArray(std::string const& str, bool reverse = false) diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 7393dbbe390..1b6fcf48ce1 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -3192,7 +3192,7 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio ByteBuffer HexToBytes(const std::string& hex) { ByteBuffer buffer(hex.length() / 2, ByteBuffer::Resize{}); - HexStrToByteArray(hex, buffer.contents()); + Trinity::Impl::HexStrToByteArray(hex, buffer.contents(), buffer.size()); return buffer; } diff --git a/src/server/shared/Realm/RealmList.cpp b/src/server/shared/Realm/RealmList.cpp index 1f1cd6326f0..4442857dc3d 100644 --- a/src/server/shared/Realm/RealmList.cpp +++ b/src/server/shared/Realm/RealmList.cpp @@ -82,11 +82,11 @@ void RealmList::LoadBuildInfo() build.Build = fields[4].GetUInt32(); std::string win64AuthSeedHexStr = fields[5].GetString(); if (win64AuthSeedHexStr.length() == build.Win64AuthSeed.size() * 2) - HexStrToByteArray(win64AuthSeedHexStr, build.Win64AuthSeed.data()); + HexStrToByteArray(win64AuthSeedHexStr, build.Win64AuthSeed); std::string mac64AuthSeedHexStr = fields[6].GetString(); if (mac64AuthSeedHexStr.length() == build.Mac64AuthSeed.size() * 2) - HexStrToByteArray(mac64AuthSeedHexStr, build.Mac64AuthSeed.data()); + HexStrToByteArray(mac64AuthSeedHexStr, build.Mac64AuthSeed); } while (result->NextRow()); } |