From 3806cd84408317d358c22cbfd5aa8bac3e09c72e Mon Sep 17 00:00:00 2001 From: Adam- Date: Fri, 16 Oct 2009 17:38:21 +0000 Subject: [PATCH] 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 --- src/nickserv.c | 18 ++++++++++++------ 1 file 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::iterator nit; + std::pair::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::iterator nit; + std::pair::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)