From c770c47e18121e93bcdd06b1ab5f161440ffcfe2 Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 31 Jul 2010 21:37:45 -0400 Subject: Don't dynamically allocate commands in modules anymore, instead made them members of modules. This means the commands are automatically destructed when the module is unloaded. Cleans up some old ugly code. --- modules/core/cs_set.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'modules/core/cs_set.cpp') diff --git a/modules/core/cs_set.cpp b/modules/core/cs_set.cpp index 219fbb3c1..49c5ca0fe 100644 --- a/modules/core/cs_set.cpp +++ b/modules/core/cs_set.cpp @@ -19,14 +19,12 @@ class CommandCSSet : public Command subcommand_map subcommands; public: - CommandCSSet(const Anope::string &cname) : Command(cname, 2, 3) + CommandCSSet() : Command("SET", 2, 3) { } ~CommandCSSet() { - for (subcommand_map::const_iterator it = this->subcommands.begin(), it_end = this->subcommands.end(); it != it_end; ++it) - delete it->second; this->subcommands.clear(); } @@ -97,9 +95,9 @@ class CommandCSSet : public Command return this->subcommands.insert(std::make_pair(c->name, c)).second; } - bool DelSubcommand(const Anope::string &command) + bool DelSubcommand(Command *c) { - return this->subcommands.erase(command); + return this->subcommands.erase(c->name); } Command *FindCommand(const Anope::string &subcommand) @@ -115,13 +113,15 @@ class CommandCSSet : public Command class CSSet : public Module { + CommandCSSet commandcsset; + public: CSSet(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator) { this->SetAuthor("Anope"); this->SetType(CORE); - this->AddCommand(ChanServ, new CommandCSSet("SET")); + this->AddCommand(ChanServ, &commandcsset); } }; -- cgit