summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-02-13 12:49:39 -0500
committerAdam <Adam@anope.org>2013-02-14 01:20:18 -0500
commit225b7c38c127fbc6aac6724012f71c9483a4da77 (patch)
treee7eb4fc6f802119ec0ff55fd769a447b956e0439 /src
parent994866461c44d57e9b1dd1813283185230c2da45 (diff)
Make NickCore::aliases a vector
Diffstat (limited to 'src')
-rw-r--r--src/access.cpp4
-rw-r--r--src/nickalias.cpp24
-rw-r--r--src/nickcore.cpp2
3 files changed, 15 insertions, 15 deletions
diff --git a/src/access.cpp b/src/access.cpp
index 467f37047..fdaada75b 100644
--- a/src/access.cpp
+++ b/src/access.cpp
@@ -156,9 +156,9 @@ bool ChanAccess::Matches(const User *u, const NickCore *nc) const
else if (u && Anope::Match(u->GetDisplayedMask(), this->mask))
return true;
else if (nc)
- for (std::list<Serialize::Reference<NickAlias> >::const_iterator it = nc->aliases.begin(); it != nc->aliases.end();)
+ for (unsigned i = nc->aliases->size(); i > 0; --i)
{
- const NickAlias *na = *it++;
+ const NickAlias *na = nc->aliases->at(i - 1);
if (na && Anope::Match(na->nick, this->mask))
return true;
}
diff --git a/src/nickalias.cpp b/src/nickalias.cpp
index 9c09c1c0a..dea888f07 100644
--- a/src/nickalias.cpp
+++ b/src/nickalias.cpp
@@ -31,7 +31,7 @@ NickAlias::NickAlias(const Anope::string &nickname, NickCore* nickcore) : Serial
this->time_registered = this->last_seen = Anope::CurTime;
this->nick = nickname;
this->nc = nickcore;
- nickcore->aliases.push_back(this);
+ nickcore->aliases->push_back(this);
size_t old = NickAliasList->size();
(*NickAliasList)[this->nick] = this;
@@ -57,10 +57,10 @@ NickAlias::~NickAlias()
if (this->nc)
{
/* Next: see if our core is still useful. */
- std::list<Serialize::Reference<NickAlias> >::iterator it = std::find(this->nc->aliases.begin(), this->nc->aliases.end(), this);
- if (it != this->nc->aliases.end())
- this->nc->aliases.erase(it);
- if (this->nc->aliases.empty())
+ std::vector<NickAlias *>::iterator it = std::find(this->nc->aliases->begin(), this->nc->aliases->end(), this);
+ if (it != this->nc->aliases->end())
+ this->nc->aliases->erase(it);
+ if (this->nc->aliases->empty())
{
this->nc->Destroy();
this->nc = NULL;
@@ -69,7 +69,7 @@ NickAlias::~NickAlias()
{
/* Display updating stuff */
if (this->nick.equals_ci(this->nc->display))
- this->nc->SetDisplay(this->nc->aliases.front());
+ this->nc->SetDisplay(this->nc->aliases->front());
}
}
@@ -278,17 +278,17 @@ Serializable* NickAlias::Unserialize(Serializable *obj, Serialize::Data &data)
if (na->nc != core)
{
- std::list<Serialize::Reference<NickAlias> >::iterator it = std::find(na->nc->aliases.begin(), na->nc->aliases.end(), na);
- if (it != na->nc->aliases.end())
- na->nc->aliases.erase(it);
+ std::vector<NickAlias *>::iterator it = std::find(na->nc->aliases->begin(), na->nc->aliases->end(), na);
+ if (it != na->nc->aliases->end())
+ na->nc->aliases->erase(it);
- if (na->nc->aliases.empty())
+ if (na->nc->aliases->empty())
delete na->nc;
else if (na->nick.equals_ci(na->nc->display))
- na->nc->SetDisplay(na->nc->aliases.front());
+ na->nc->SetDisplay(na->nc->aliases->front());
na->nc = core;
- core->aliases.push_back(na);
+ core->aliases->push_back(na);
}
data["last_quit"] >> na->last_quit;
diff --git a/src/nickcore.cpp b/src/nickcore.cpp
index c906f5999..7dda6da5c 100644
--- a/src/nickcore.cpp
+++ b/src/nickcore.cpp
@@ -17,7 +17,7 @@
Serialize::Checker<nickcore_map> NickCoreList("NickCore");
-NickCore::NickCore(const Anope::string &coredisplay) : Serializable("NickCore")
+NickCore::NickCore(const Anope::string &coredisplay) : Serializable("NickCore"), aliases("NickAlias")
{
if (coredisplay.empty())
throw CoreException("Empty display passed to NickCore constructor");