From 232f7f19a749b327a19ee9320797be990e01fe1b Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 14 Jul 2024 13:13:27 +0200 Subject: Core/Entities: Skip calling toupper on number to string conversion result if not neccessary (only hex conversions need it) (cherry picked from commit 3313ea1fe6717313c6dc11b783bad7c89cbab8c4) --- src/server/game/Entities/Object/ObjectGuid.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') 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 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) -- cgit v1.2.3