summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/Utilities/DataMap.h3
-rw-r--r--src/server/game/Entities/Object/Object.cpp2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/common/Utilities/DataMap.h b/src/common/Utilities/DataMap.h
index 976b50e88e..0d6ce20fbe 100644
--- a/src/common/Utilities/DataMap.h
+++ b/src/common/Utilities/DataMap.h
@@ -28,6 +28,9 @@ public:
*/
template<class T> T* Get(std::string const & k) const {
static_assert(std::is_base_of<Base, T>::value, "T must derive from Base");
+ if (Container.empty())
+ return nullptr;
+
auto it = Container.find(k);
if (it != Container.end())
return dynamic_cast<T*>(it->second.get());
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index d1731510ea..3bb0e04565 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -71,6 +71,8 @@ Object::Object() : m_PackGUID(sizeof(uint64)+1)
m_inWorld = false;
m_objectUpdated = false;
+ CustomData.Set("base",new DataMap::Base); // avoid crash when access not initialized CustomData
+
m_PackGUID.appendPackGUID(0);
}