diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-09-02 00:43:04 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-09-02 00:43:04 +0000 |
commit | 2630a87bb13b089e6d0fdcff4bcd0f3a9612e52f (patch) | |
tree | 8a780298dbc1311024047a2587fddcd0beafd2ca /src/modules/m_jumpserver.cpp | |
parent | de87dec941cbf1eb6950a508876d654e2a3b63e4 (diff) |
Change allocation of commands/modes
API change: Commands passed to AddCommand are no longer deleted automatically
This removes lots of needless heap allocation and fixes a few memory leaks by
allocating commands and modes as part of the Module rather than creating them
separately in the module constructor.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11592 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_jumpserver.cpp')
-rw-r--r-- | src/modules/m_jumpserver.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/modules/m_jumpserver.cpp b/src/modules/m_jumpserver.cpp index 2fb509af1..f97e64258 100644 --- a/src/modules/m_jumpserver.cpp +++ b/src/modules/m_jumpserver.cpp @@ -134,14 +134,12 @@ class CommandJumpserver : public Command class ModuleJumpServer : public Module { - CommandJumpserver* js; + CommandJumpserver js; public: ModuleJumpServer(InspIRCd* Me) - : Module(Me) + : Module(Me), js(Me) { - - js = new CommandJumpserver(ServerInstance); - ServerInstance->AddCommand(js); + ServerInstance->AddCommand(&js); Implementation eventlist[] = { I_OnUserRegister }; ServerInstance->Modules->Attach(eventlist, this, 1); } @@ -152,10 +150,11 @@ class ModuleJumpServer : public Module virtual int OnUserRegister(User* user) { - if (js->port && js->redirect_new_users) + if (js.port && js.redirect_new_users) { - user->WriteNumeric(10, "%s %s %d :Please use this Server/Port instead", user->nick.c_str(), js->redirect_to.c_str(), js->port); - ServerInstance->Users->QuitUser(user, js->reason); + user->WriteNumeric(10, "%s %s %d :Please use this Server/Port instead", + user->nick.c_str(), js.redirect_to.c_str(), js.port); + ServerInstance->Users->QuitUser(user, js.reason); return 0; } return 0; |