From 29d79e080f7e3dc4421e64d910f8871f120d68c2 Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Sun, 2 Apr 2023 20:32:25 +0200 Subject: [PATCH] fix(Core/Guilds): Improve HandleRoster performance (#15421) * cherry-pick commit https://github.com/TrinityCore/TrinityCore/commit/ee6bbd68bd0eaa3675099765a3e74cbb58cc2f1d * takes call time from ~400 microseconds to ~260 microseconds on my machine in a guild with 900 members Co-authored-by: ihm-tswow <76849026+ihm-tswow@users.noreply.github.com> --- src/server/game/Guilds/Guild.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index e04b70411..aabe0c9c6 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1201,6 +1201,7 @@ void Guild::HandleRoster(WorldSession* session) { WorldPackets::Guild::GuildRoster roster; + roster.RankData.reserve(m_ranks.size()); for (RankInfo const& rank : m_ranks) { WorldPackets::Guild::GuildRankData& rankData = roster.RankData.emplace_back(); @@ -1215,6 +1216,7 @@ void Guild::HandleRoster(WorldSession* session) } bool sendOfficerNote = _HasRankRight(session->GetPlayer(), GR_RIGHT_VIEWOFFNOTE); + roster.MemberData.reserve(m_members.size()); for (auto const& [guid, member] : m_members) { WorldPackets::Guild::GuildRosterMemberData& memberData = roster.MemberData.emplace_back();