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 02:05:51 -0300
commitcbb5c073ceb951fa138bb05b55de8b21ffd83063 (patch)
tree3b229037242f79eeff6f0263573512aaa6cb17b6 /src/common/Utilities/Util.h
parent58c5011499056cf2c415e24e854a3de93a870f9e (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.h32
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();
}
};