fix(Core/Guilds): Improve HandleRoster performance (#15421)

* cherry-pick commit ee6bbd68bd

* 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>
This commit is contained in:
Kitzunu
2023-04-02 20:32:25 +02:00
committed by GitHub
parent f80fb9b482
commit 29d79e080f

View File

@@ -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();