diff options
author | Adam <Adam@anope.org> | 2011-11-15 16:16:38 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-11-15 16:16:38 -0500 |
commit | 9ed203c0cb137997241e3094a9430ef593d2b1f0 (patch) | |
tree | 1ee0048651e3754124639afe29608c491d5d6b35 /include/serialize.h | |
parent | b5ff856f47d8e54d12c568462a06351633c29610 (diff) |
Fixed crash on shutdown & a compiler warning
Diffstat (limited to 'include/serialize.h')
-rw-r--r-- | include/serialize.h | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/include/serialize.h b/include/serialize.h index 8bd26bfda..41d79d138 100644 --- a/include/serialize.h +++ b/include/serialize.h @@ -66,7 +66,7 @@ extern void RegisterTypes(); class CoreExport Serializable { private: - static std::list<Serializable *> serizliable_items; + static std::list<Serializable *> *serizliable_items; Anope::string serizliable_name; std::list<Serializable *>::iterator s_iter; @@ -79,19 +79,21 @@ class CoreExport Serializable protected: Serializable(const Anope::string &n) : serizliable_name(n) { - serizliable_items.push_front(this); - this->s_iter = serizliable_items.begin(); + if (serizliable_items == NULL) + serizliable_items = new std::list<Serializable *>(); + serizliable_items->push_front(this); + this->s_iter = serizliable_items->begin(); } Serializable(const Serializable &) { - serizliable_items.push_front(this); - this->s_iter = serizliable_items.begin(); + serizliable_items->push_front(this); + this->s_iter = serizliable_items->begin(); } virtual ~Serializable() { - serizliable_items.erase(this->s_iter); + serizliable_items->erase(this->s_iter); } Serializable &operator=(const Serializable &) @@ -111,7 +113,7 @@ class CoreExport Serializable static const std::list<Serializable *> &GetItems() { - return serizliable_items; + return *serizliable_items; } }; |