diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-04-30 14:04:28 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-04-30 14:04:28 +0200 |
commit | 8f7a1d3c2c59b72d193e5eeed065ebd8f13d4ecc (patch) | |
tree | 121cfb5906cc0ca6e8a6a0cd3b764210579a5a8f /src/server/game/Achievements/AchievementMgr.cpp | |
parent | 7f5e47c396e49da2530aabac05f7ca3c0f177298 (diff) |
Core/Misc: Delay creating std::string objects for locale data after size validation
Diffstat (limited to 'src/server/game/Achievements/AchievementMgr.cpp')
-rw-r--r-- | src/server/game/Achievements/AchievementMgr.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
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)); |