From 8f7a1d3c2c59b72d193e5eeed065ebd8f13d4ecc Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 30 Apr 2023 14:04:28 +0200 Subject: Core/Misc: Delay creating std::string objects for locale data after size validation --- src/server/game/Achievements/AchievementMgr.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/server/game/Achievements/AchievementMgr.cpp') diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 761edc0efa7..484333e90fb 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -1360,8 +1360,8 @@ void AchievementGlobalMgr::LoadRewardLocales() { Field* fields = result->Fetch(); - uint32 id = fields[0].GetUInt32(); - std::string localeName = fields[1].GetString(); + uint32 id = fields[0].GetUInt32(); + std::string_view localeName = fields[1].GetStringView(); if (_achievementRewards.find(id) == _achievementRewards.end()) { @@ -1369,13 +1369,13 @@ void AchievementGlobalMgr::LoadRewardLocales() continue; } - AchievementRewardLocale& data = _achievementRewardLocales[id]; - LocaleConstant locale = GetLocaleByName(localeName); + LocaleConstant locale = GetLocaleByName(localeName); if (!IsValidLocale(locale) || locale == LOCALE_enUS) continue; - ObjectMgr::AddLocaleString(fields[2].GetString(), locale, data.Subject); - ObjectMgr::AddLocaleString(fields[3].GetString(), locale, data.Body); + AchievementRewardLocale& data = _achievementRewardLocales[id]; + ObjectMgr::AddLocaleString(fields[2].GetStringView(), locale, data.Subject); + ObjectMgr::AddLocaleString(fields[3].GetStringView(), locale, data.Body); } while (result->NextRow()); TC_LOG_INFO("server.loading", ">> Loaded {} achievement reward locale strings in {} ms.", uint32(_achievementRewardLocales.size()), GetMSTimeDiffToNow(oldMSTime)); -- cgit v1.2.3