]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_globalload.cpp
Fix memory leak and invalid vtable location on unload of m_sslinfo
[user/henk/code/inspircd.git] / src / modules / m_globalload.cpp
index 22035178c0ad8dd20466f320ee0a880975a9e914..72c8a14d3b092e57be60dbdc6d3af781f6b35ef4 100644 (file)
@@ -20,9 +20,8 @@
 class CommandGloadmodule : public Command
 {
  public:
-       CommandGloadmodule (InspIRCd* Instance) : Command(Instance,"GLOADMODULE", "o", 1)
+       CommandGloadmodule (InspIRCd* Instance, Module* Creator) : Command(Instance, Creator,"GLOADMODULE", "o", 1)
        {
-               this->source = "m_globalload.so";
                syntax = "<modulename> [servermask]";
                TRANSLATE3(TR_TEXT, TR_TEXT, TR_END);
        }
@@ -55,9 +54,8 @@ class CommandGloadmodule : public Command
 class CommandGunloadmodule : public Command
 {
  public:
-       CommandGunloadmodule (InspIRCd* Instance) : Command(Instance,"GUNLOADMODULE", "o", 1)
+       CommandGunloadmodule (InspIRCd* Instance, Module* Creator) : Command(Instance, Creator,"GUNLOADMODULE", "o", 1)
        {
-               this->source = "m_globalload.so";
                syntax = "<modulename> [servermask]";
        }
 
@@ -89,9 +87,8 @@ class CommandGunloadmodule : public Command
 class CommandGreloadmodule : public Command
 {
  public:
-       CommandGreloadmodule (InspIRCd* Instance) : Command(Instance, "GRELOADMODULE", "o", 1)
+       CommandGreloadmodule (InspIRCd* Instance, Module* Creator) : Command(Instance, Creator, "GRELOADMODULE", "o", 1)
        {
-               this->source = "m_globalload.so";
                syntax = "<modulename> [servermask]";
        }
 
@@ -125,21 +122,17 @@ class CommandGreloadmodule : public Command
 
 class ModuleGlobalLoad : public Module
 {
-       CommandGloadmodule *mycommand;
-       CommandGunloadmodule *mycommand2;
-       CommandGreloadmodule *mycommand3;
+       CommandGloadmodule cmd1;
+       CommandGunloadmodule cmd2;
+       CommandGreloadmodule cmd3;
 
  public:
-       ModuleGlobalLoad(InspIRCd* Me) : Module(Me)
+       ModuleGlobalLoad(InspIRCd* Me)
+               : Module(Me), cmd1(Me, this), cmd2(Me, this), cmd3(Me, this)
        {
-
-               mycommand = new CommandGloadmodule(ServerInstance);
-               mycommand2 = new CommandGunloadmodule(ServerInstance);
-               mycommand3 = new CommandGreloadmodule(ServerInstance);
-               ServerInstance->AddCommand(mycommand);
-               ServerInstance->AddCommand(mycommand2);
-               ServerInstance->AddCommand(mycommand3);
-
+               ServerInstance->AddCommand(&cmd1);
+               ServerInstance->AddCommand(&cmd2);
+               ServerInstance->AddCommand(&cmd3);
        }
 
        virtual ~ModuleGlobalLoad()