mirror of
https://github.com/anope/anope.git
synced 2026-07-09 07:03:14 +02:00
Fixed crash on shutdown & a compiler warning
This commit is contained in:
+9
-7
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
+1
-1
@@ -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()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user