summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/modules.h7
-rw-r--r--src/module.cpp2
-rw-r--r--src/modules.c21
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)