aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Globals
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-02-02 14:15:11 +0100
committerOvahlord <dreadkiller@gmx.de>2025-02-04 16:23:35 +0100
commit601d6e1d60a6c2c19fd3dd2d2432c0f9c626c665 (patch)
treed4a43a1c9283e49898eb99e564b9bfd122d9312a /src/server/game/Globals
parent055268d23e9798945f6ade6c5d0a25c2707d8829 (diff)
Core/Objects: Make guid generators atomic
(cherry picked from commit 6c925ed40c4396b69303839190d6687b98c88c60)
Diffstat (limited to 'src/server/game/Globals')
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp6
-rw-r--r--src/server/game/Globals/ObjectMgr.h3
2 files changed, 3 insertions, 6 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index f46c7e18244..8419c4a957a 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -7188,11 +7188,7 @@ void ObjectMgr::SetHighestGuids()
ObjectGuidGenerator& ObjectMgr::GetGuidSequenceGenerator(HighGuid high)
{
- auto itr = _guidGenerators.find(high);
- if (itr == _guidGenerators.end())
- itr = _guidGenerators.insert(std::make_pair(high, std::make_unique<ObjectGuidGenerator>(high))).first;
-
- return *itr->second;
+ return _guidGenerators.try_emplace(high, high).first->second;
}
uint32 ObjectMgr::GenerateAuctionID()
diff --git a/src/server/game/Globals/ObjectMgr.h b/src/server/game/Globals/ObjectMgr.h
index 7de6017ecd8..f645ddacf38 100644
--- a/src/server/game/Globals/ObjectMgr.h
+++ b/src/server/game/Globals/ObjectMgr.h
@@ -29,6 +29,7 @@
#include "NPCHandler.h"
#include "ObjectDefines.h"
#include "ObjectGuid.h"
+#include "ObjectGuidSequenceGenerator.h"
#include "Position.h"
#include "QuestDef.h"
#include "RaceMask.h"
@@ -1776,7 +1777,7 @@ class TC_GAME_API ObjectMgr
// first free low guid for selected guid type
ObjectGuidGenerator& GetGuidSequenceGenerator(HighGuid high);
- std::map<HighGuid, std::unique_ptr<ObjectGuidGenerator>> _guidGenerators;
+ std::map<HighGuid, ObjectGuidGenerator> _guidGenerators;
QuestContainer _questTemplates;
std::vector<Quest const*> _questTemplatesAutoPush;
QuestObjectivesByIdContainer _questObjectives;