diff options
author | special <special@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-10-11 07:46:04 +0000 |
---|---|---|
committer | special <special@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-10-11 07:46:04 +0000 |
commit | ef70178ea465aebe7c5318496d4bde89f867bc3b (patch) | |
tree | 4eb3c591a118ca7b1b36e5097ba1604d0469efa8 /src/modules | |
parent | 9f36316d730c7b4457a5625ca8012ead11bd9482 (diff) |
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
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/m_safelist.cpp | 13 |
1 files 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<userrec *> 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() |