summaryrefslogtreecommitdiff
path: root/include/serialize.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-11-15 16:16:38 -0500
committerAdam <Adam@anope.org>2011-11-15 16:16:38 -0500
commit9ed203c0cb137997241e3094a9430ef593d2b1f0 (patch)
tree1ee0048651e3754124639afe29608c491d5d6b35 /include/serialize.h
parentb5ff856f47d8e54d12c568462a06351633c29610 (diff)
Fixed crash on shutdown & a compiler warning
Diffstat (limited to 'include/serialize.h')
-rw-r--r--include/serialize.h16
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;
}
};