From ee6bbd68bd0eaa3675099765a3e74cbb58cc2f1d Mon Sep 17 00:00:00 2001 From: ihm-tswow <76849026+ihm-tswow@users.noreply.github.com> Date: Tue, 27 Sep 2022 12:35:45 +0200 Subject: Core/Guilds: Improve HandleRoster performance (#28290) - takes call time from ~400 microseconds to ~260 microseconds on my machine in a guild with 900 members --- src/server/game/Guilds/Guild.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/server/game/Guilds/Guild.cpp b/src/server/game/Guilds/Guild.cpp index 01d1bfc3ae4..717fe0e4505 100644 --- a/src/server/game/Guilds/Guild.cpp +++ b/src/server/game/Guilds/Guild.cpp @@ -1235,6 +1235,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(); @@ -1249,6 +1250,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(); -- cgit v1.2.3