diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/common/Utilities/DataMap.h | 3 | ||||
| -rw-r--r-- | src/server/game/Entities/Object/Object.cpp | 2 |
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); } |
