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 05:35:41 -0300 |
commit | 780d1019f217263ff96e7e51d412eb952983b761 (patch) | |
tree | b0f27002cbb10e82082d9d71c24ba2653527dea0 /src/common/Utilities/Util.h | |
parent | f7d351fb709b15a0ffa5e9361aa16407c4385f14 (diff) |
Core/ScriptMgr: use vector instead of list to contain Spell and Aura scripts and hooks
(cherry picked from commit cbb5c073ceb951fa138bb05b55de8b21ffd83063)
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 6977de5a0c5..d996caf32a5 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; private: - typename std::list<T> m_list; + typedef std::vector<T> ContainerType; + + 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(); } }; |