diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-11-13 21:44:04 -0300 |
---|---|---|
committer | ariel- <ariel-@users.noreply.github.com> | 2016-11-14 02:05:51 -0300 |
commit | cbb5c073ceb951fa138bb05b55de8b21ffd83063 (patch) | |
tree | 3b229037242f79eeff6f0263573512aaa6cb17b6 /src/common/Utilities/Util.h | |
parent | 58c5011499056cf2c415e24e854a3de93a870f9e (diff) |
Core/ScriptMgr: use vector instead of list to contain Spell and Aura scripts and hooks
Diffstat (limited to 'src/common/Utilities/Util.h')
-rw-r--r-- | src/common/Utilities/Util.h | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/common/Utilities/Util.h b/src/common/Utilities/Util.h index fc322a89583..25cd20f27ac 100644 --- a/src/common/Utilities/Util.h +++ b/src/common/Utilities/Util.h @@ -327,33 +327,35 @@ TC_COMMON_API bool StringToBool(std::string const& str); // simple class for not-modifyable list template <typename T> -class HookList +class HookList final { - typedef typename std::list<T>::iterator ListIterator; + typedef std::vector<T> ContainerType; + private: - typename std::list<T> m_list; + typename ContainerType _container; + public: - HookList<T> & operator+=(T t) - { - m_list.push_back(t); - return *this; - } - HookList<T> & operator-=(T t) + typedef typename ContainerType::iterator iterator; + + HookList<T>& operator+=(T t) { - m_list.remove(t); + _container.push_back(t); return *this; } + size_t size() { - return m_list.size(); + return _container.size(); } - ListIterator begin() + + iterator begin() { - return m_list.begin(); + return _container.begin(); } - ListIterator end() + + iterator end() { - return m_list.end(); + return _container.end(); } }; |