diff options
author | Adam <Adam@anope.org> | 2013-02-13 12:49:39 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2013-02-14 01:20:18 -0500 |
commit | 225b7c38c127fbc6aac6724012f71c9483a4da77 (patch) | |
tree | e7eb4fc6f802119ec0ff55fd769a447b956e0439 /src | |
parent | 994866461c44d57e9b1dd1813283185230c2da45 (diff) |
Make NickCore::aliases a vector
Diffstat (limited to 'src')
-rw-r--r-- | src/access.cpp | 4 | ||||
-rw-r--r-- | src/nickalias.cpp | 24 | ||||
-rw-r--r-- | src/nickcore.cpp | 2 |
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"); |