aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Achievements/AchievementMgr.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-04-30 14:04:28 +0200
committerShauren <shauren.trinity@gmail.com>2023-04-30 14:04:28 +0200
commit8f7a1d3c2c59b72d193e5eeed065ebd8f13d4ecc (patch)
tree121cfb5906cc0ca6e8a6a0cd3b764210579a5a8f /src/server/game/Achievements/AchievementMgr.cpp
parent7f5e47c396e49da2530aabac05f7ca3c0f177298 (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.cpp12
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));