aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-07-14 13:13:27 +0200
committerOvahlord <dreadkiller@gmx.de>2024-07-14 19:03:17 +0200
commit232f7f19a749b327a19ee9320797be990e01fe1b (patch)
treea99cd93673fd73ecf13305d665018e349ad0e0f6
parentd0927c10944e13025cf76d873a8d6a9b9568eafc (diff)
Core/Entities: Skip calling toupper on number to string conversion result if not neccessary (only hex conversions need it)
(cherry picked from commit 3313ea1fe6717313c6dc11b783bad7c89cbab8c4)
-rw-r--r--src/server/game/Entities/Object/ObjectGuid.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Entities/Object/ObjectGuid.cpp b/src/server/game/Entities/Object/ObjectGuid.cpp
index ffa7b395e3a..4b3c661ccaa 100644
--- a/src/server/game/Entities/Object/ObjectGuid.cpp
+++ b/src/server/game/Entities/Object/ObjectGuid.cpp
@@ -85,15 +85,18 @@ namespace
std::array<char, 20> buf;
auto [end, err] = std::to_chars(buf.data(), buf.data() + buf.size(), component, Base);
- ASSERT_NODEBUGINFO(err == std::errc(), "Failed to convert guid part to string");
+ ASSERT(err == std::errc(), "Failed to convert guid part to string");
if constexpr (Width != 0)
{
- if (std::distance(buf.data(), end) < Width)
- std::fill_n(ctx.out(), Width - std::distance(buf.data(), end), '0');
+ if (std::ptrdiff_t written = std::distance(buf.data(), end); written < Width)
+ std::fill_n(ctx.out(), Width - written, '0');
}
- return std::transform(buf.data(), end, ctx.out(), charToUpper);
+ if constexpr (Base > 10)
+ return std::transform(buf.data(), end, ctx.out(), charToUpper);
+ else
+ return std::copy(buf.data(), end, ctx.out());
}
static fmt::appender AppendComponent(fmt::format_context& ctx, std::string_view component)