diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-10-17 15:48:02 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-10-17 15:48:02 +0200 |
commit | 7b6589c1ecc159f6949c5535785fba79a04b2c4a (patch) | |
tree | a4effc10887ee0e6eb4fbfd4c36179fd0cb72316 /src/server/game/Grids/ObjectGridLoader.cpp | |
parent | 9fc4e2ba5cffa2eaac8cdb20c9400ad666132b48 (diff) |
Core/Misc: Fixed thread-unsafe access to list of objects that should be spawned in a cell
Closes #29372
Diffstat (limited to 'src/server/game/Grids/ObjectGridLoader.cpp')
-rw-r--r-- | src/server/game/Grids/ObjectGridLoader.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/server/game/Grids/ObjectGridLoader.cpp b/src/server/game/Grids/ObjectGridLoader.cpp index 3420707fdbe..5fd6d741a90 100644 --- a/src/server/game/Grids/ObjectGridLoader.cpp +++ b/src/server/game/Grids/ObjectGridLoader.cpp @@ -131,22 +131,21 @@ void LoadHelper(CellGuidSet const& guid_set, CellCoord& cell, GridRefManager<T>& void ObjectGridLoader::Visit(GameObjectMapType& m) { CellCoord cellCoord = i_cell.GetCellCoord(); - CellObjectGuids const& cell_guids = sObjectMgr->GetCellObjectGuids(i_map->GetId(), i_map->GetDifficultyID(), cellCoord.GetId()); - LoadHelper(cell_guids.gameobjects, cellCoord, m, i_gameObjects, i_map); + if (CellObjectGuids const* cell_guids = sObjectMgr->GetCellObjectGuids(i_map->GetId(), i_map->GetDifficultyID(), cellCoord.GetId())) + LoadHelper(cell_guids->gameobjects, cellCoord, m, i_gameObjects, i_map); } void ObjectGridLoader::Visit(CreatureMapType &m) { CellCoord cellCoord = i_cell.GetCellCoord(); - CellObjectGuids const& cell_guids = sObjectMgr->GetCellObjectGuids(i_map->GetId(), i_map->GetDifficultyID(), cellCoord.GetId()); - LoadHelper(cell_guids.creatures, cellCoord, m, i_creatures, i_map); + if (CellObjectGuids const* cell_guids = sObjectMgr->GetCellObjectGuids(i_map->GetId(), i_map->GetDifficultyID(), cellCoord.GetId())) + LoadHelper(cell_guids->creatures, cellCoord, m, i_creatures, i_map); } void ObjectGridLoader::Visit(AreaTriggerMapType& m) { CellCoord cellCoord = i_cell.GetCellCoord(); - CellGuidSet const* areaTriggers = sAreaTriggerDataStore->GetAreaTriggersForMapAndCell(i_map->GetId(), i_map->GetDifficultyID(), cellCoord.GetId()); - if (areaTriggers) + if (CellGuidSet const* areaTriggers = sAreaTriggerDataStore->GetAreaTriggersForMapAndCell(i_map->GetId(), i_map->GetDifficultyID(), cellCoord.GetId())) LoadHelper(*areaTriggers, cellCoord, m, i_areaTriggers, i_map); } |