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 | |
parent | b5ff856f47d8e54d12c568462a06351633c29610 (diff) |
Fixed crash on shutdown & a compiler warning
-rw-r--r-- | include/serialize.h | 16 | ||||
-rw-r--r-- | modules/database/db_sql.cpp | 4 | ||||
-rw-r--r-- | src/base.cpp | 2 |
3 files changed, 12 insertions, 10 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; } }; diff --git a/modules/database/db_sql.cpp b/modules/database/db_sql.cpp index e083204d4..775c23123 100644 --- a/modules/database/db_sql.cpp +++ b/modules/database/db_sql.cpp @@ -172,10 +172,10 @@ class DBSQL : public Module SQLQuery query("SELECT * FROM `" + sb->GetName() + "`"); SQLResult res = this->sql->RunQuery(query); - for (int i = 0; i < res.Rows(); ++i) + for (int j = 0; j < res.Rows(); ++j) { Serializable::serialized_data data; - const std::map<Anope::string, Anope::string> &row = res.Row(i); + const std::map<Anope::string, Anope::string> &row = res.Row(j); for (std::map<Anope::string, Anope::string>::const_iterator rit = row.begin(), rit_end = row.end(); rit != rit_end; ++rit) data[rit->first] << rit->second; diff --git a/src/base.cpp b/src/base.cpp index 08d5c6e63..98734d34d 100644 --- a/src/base.cpp +++ b/src/base.cpp @@ -4,7 +4,7 @@ std::vector<Anope::string> SerializeType::type_order; Anope::map<SerializeType *> SerializeType::types; -std::list<Serializable *> Serializable::serizliable_items; +std::list<Serializable *> *Serializable::serizliable_items; void RegisterTypes() { |