From ef70178ea465aebe7c5318496d4bde89f867bc3b Mon Sep 17 00:00:00 2001 From: special Date: Wed, 11 Oct 2006 07:46:04 +0000 Subject: Fixed a crash when unloading m_safelist (timers weren't properly tracked to be deleted). Someone should seriously consider rewriting this module, or at least seriously overhauling it git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5460 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_safelist.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/modules/m_safelist.cpp b/src/modules/m_safelist.cpp index 32e68ff10..11976f91c 100644 --- a/src/modules/m_safelist.cpp +++ b/src/modules/m_safelist.cpp @@ -41,6 +41,7 @@ class ListData : public classbase typedef std::vector UserList; UserList listusers; /* vector of people doing a /list */ +class ListTimer *timer; /** To create a timer which recurs every second, we inherit from InspTimer. * InspTimer is only one-shot however, so at the end of each Tick() we simply @@ -135,26 +136,24 @@ class ListTimer : public InspTimer } } - ListTimer* MyTimer = new ListTimer(ServerInstance,1); - ServerInstance->Timers->AddTimer(MyTimer); + timer = new ListTimer(ServerInstance,1); + ServerInstance->Timers->AddTimer(timer); } }; class ModuleSafeList : public Module { private: - - ListTimer* MyTimer; public: ModuleSafeList(InspIRCd* Me) : Module::Module(Me) { - MyTimer = new ListTimer(ServerInstance,1); - ServerInstance->Timers->AddTimer(MyTimer); + timer = new ListTimer(ServerInstance,1); + ServerInstance->Timers->AddTimer(timer); } virtual ~ModuleSafeList() { - ServerInstance->Timers->DelTimer(MyTimer); + ServerInstance->Timers->DelTimer(timer); } virtual Version GetVersion() -- cgit v1.2.3