aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-10-28 00:52:19 +0100
committerOvahlord <dreadkiller@gmx.de>2024-11-01 07:54:17 +0100
commit56ada5b873b1edbccd7c3ad9e7a33285f5dc932e (patch)
tree3ccb81f6cfa8cdf5be9112fbc1dd4041ca4a2644
parent2c99afab5e613c8bb5ca309fb0d814d6dee760ec (diff)
Core/Objects: Eliminate unneccessary temporary objects and double map lookups when building SMSG_UPDATE_OBJECT
(cherry picked from commit 38a209276d9a6b3fb5e657711894a1b696933c59)
-rw-r--r--src/server/game/Entities/Object/Object.cpp10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 20f2a3a6cff..86e742426e0 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -852,15 +852,7 @@ void Object::ClearUpdateMask(bool remove)
void Object::BuildFieldsUpdate(Player* player, UpdateDataMapType& data_map) const
{
- UpdateDataMapType::iterator iter = data_map.find(player);
-
- if (iter == data_map.end())
- {
- std::pair<UpdateDataMapType::iterator, bool> p = data_map.emplace(player, UpdateData(player->GetMapId()));
- ASSERT(p.second);
- iter = p.first;
- }
-
+ UpdateDataMapType::iterator iter = data_map.try_emplace(player, player->GetMapId()).first;
BuildValuesUpdateBlockForPlayer(&iter->second, iter->first);
}