summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/nickserv.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/nickserv.c b/src/nickserv.c
index 3cd25e671..5af6833fc 100644
--- a/src/nickserv.c
+++ b/src/nickserv.c
@@ -41,10 +41,16 @@ class NickServCollide : public Timer
{
public:
NickAlias *na;
+ std::map<NickAlias *, NickServCollide *>::iterator nit;
NickServCollide(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias)
{
- NickServCollides.insert(std::make_pair(nickalias, this));
+ nit = NickServCollides.insert(std::make_pair(nickalias, this)).first;
+ }
+
+ ~NickServCollide()
+ {
+ NickServCollides.erase(nit);
}
void Tick(time_t ctime)
@@ -79,10 +85,16 @@ class NickServRelease : public Timer
public:
NickAlias *na;
std::string uid;
+ std::map<NickAlias *, NickServRelease *>::iterator nit;
NickServRelease(NickAlias *nickalias, time_t delay) : Timer(delay), na(nickalias)
{
- NickServReleases.insert(std::make_pair(nickalias, this));
+ nit = NickServReleases.insert(std::make_pair(nickalias, this)).first;
+ }
+
+ ~NickServRelease()
+ {
+ NickServReleases.erase(nit);
}
void Tick(time_t ctime)