summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-10-16 17:38:21 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-10-16 17:38:21 +0000
commit3806cd84408317d358c22cbfd5aa8bac3e09c72e (patch)
tree3a54943bb89192724a3245916ae6136d4596e034
parentf6510291aa1131dbc4b4fe2f573b4c317eb3db90 (diff)
Fixed bug #1110 - Fixed tracking of NickServ collide/release timers to only attempt to delete real ones
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2563 5417fbe8-f217-4b02-8779-1006273d7864
-rw-r--r--src/nickserv.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/nickserv.c b/src/nickserv.c
index 110c52e29..22938b954 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -41,16 +41,19 @@ class NickServCollide : public Timer
{
public:
NickAlias *na;
- std::map<NickAlias *, NickServCollide *>::iterator nit;
+ std::pair<std::map<NickAlias *, NickServCollide *>::iterator, bool> it;
NickServCollide(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias)
{
- nit = NickServCollides.insert(std::make_pair(nickalias, this)).first;
+ it = NickServCollides.insert(std::make_pair(nickalias, this));
}
~NickServCollide()
{
- NickServCollides.erase(nit);
+ if (it.second)
+ {
+ NickServCollides.erase(it.first);
+ }
}
void Tick(time_t ctime)
@@ -85,16 +88,19 @@ class NickServRelease : public Timer
public:
NickAlias *na;
std::string uid;
- std::map<NickAlias *, NickServRelease *>::iterator nit;
+ std::pair<std::map<NickAlias *, NickServRelease *>::iterator, bool> it;
NickServRelease(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias)
{
- nit = NickServReleases.insert(std::make_pair(nickalias, this)).first;
+ it = NickServReleases.insert(std::make_pair(nickalias, this));
}
~NickServRelease()
{
- NickServReleases.erase(nit);
+ if (it.second)
+ {
+ NickServReleases.erase(it.first);
+ }
}
void Tick(time_t ctime)