diff options
-rw-r--r-- | include/modules.h | 7 | ||||
-rw-r--r-- | src/module.cpp | 2 | ||||
-rw-r--r-- | src/modules.c | 21 |
3 files changed, 15 insertions, 15 deletions
diff --git a/include/modules.h b/include/modules.h index fc7451b49..d01b4f65d 100644 --- a/include/modules.h +++ b/include/modules.h @@ -227,6 +227,12 @@ class CoreExport Module **/ void InsertLanguage(int langNumber, int ac, const char **av); + /** + * Delete a language from a module + * @param langNumber the language Number to delete + **/ + void DeleteLanguage(int langNumber); + /** Add a module message to the IRCD message hash * @param m the Message to add * @param pos the Position to add the message to, e.g. MOD_HEAD, MOD_TAIL, MOD_UNIQUE @@ -458,7 +464,6 @@ int destroyEventHook(EvtHook * evh); MDE void moduleInsertLanguage(int langNumber, int ac, const char **av); MDE void moduleNoticeLang(char *source, User *u, int number, ...); MDE const char *moduleGetLangString(User * u, int number); -MDE void moduleDeleteLanguage(int langNumber); /*************************************************************************/ diff --git a/src/module.cpp b/src/module.cpp index 2df2aaa58..877b966c5 100644 --- a/src/module.cpp +++ b/src/module.cpp @@ -65,7 +65,7 @@ Module::~Module() mod_current_module = this; for (i = 0; i < NUM_LANGS; i++) - moduleDeleteLanguage(i); + this->DeleteLanguage(i); remove(this->filename.c_str()); diff --git a/src/modules.c b/src/modules.c index c701355ab..f355790f5 100644 --- a/src/modules.c +++ b/src/modules.c @@ -156,7 +156,7 @@ void Module::InsertLanguage(int langNumber, int ac, const char **av) alog("debug: %s Adding %d texts for language %d", this->name.c_str(), ac, langNumber); if (this->lang[langNumber].argc > 0) { - moduleDeleteLanguage(langNumber); + this->DeleteLanguage(langNumber); } this->lang[langNumber].argc = ac; @@ -1300,20 +1300,15 @@ const char *moduleGetLangString(User * u, int number) } } -/** - * Delete a language from a module - * @param langNumber the language Number to delete - **/ -void moduleDeleteLanguage(int langNumber) +void Module::DeleteLanguage(int langNumber) { - int idx = 0; - if ((mod_current_module_name) && (!mod_current_module || mod_current_module_name != mod_current_module->name)) { - mod_current_module = findModule(mod_current_module_name); - } - for (idx = 0; idx > mod_current_module->lang[langNumber].argc; idx++) { - delete [] mod_current_module->lang[langNumber].argv[idx]; + if (this->lang[langNumber].argc) + { + for (int idx = 0; idx > this->lang[langNumber].argc; idx++) + delete [] this->lang[langNumber].argv[idx]; + delete [] this->lang[langNumber].argv; + this->lang[langNumber].argc = 0; } - mod_current_module->lang[langNumber].argc = 0; } void ModuleRunTimeDirCleanUp(void) |