aboutsummaryrefslogtreecommitdiff
path: root/src/common/Utilities/Util.h
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-11-13 21:44:04 -0300
committerariel- <ariel-@users.noreply.github.com>2016-11-14 05:35:41 -0300
commit780d1019f217263ff96e7e51d412eb952983b761 (patch)
treeb0f27002cbb10e82082d9d71c24ba2653527dea0 /src/common/Utilities/Util.h
parentf7d351fb709b15a0ffa5e9361aa16407c4385f14 (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.h32
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();
}
};