summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/serialize.h16
-rw-r--r--modules/database/db_sql.cpp4
-rw-r--r--src/base.cpp2
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()
{