diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/module.cpp | 2 | ||||
-rw-r--r-- | src/modules.c | 21 |
2 files changed, 9 insertions, 14 deletions
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) |