summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2012-02-06 02:45:35 +0300
committerAndrei Karas <akaras@inbox.ru>2012-02-06 02:45:35 +0300
commit8e6ef0d196a2c9772225f2ac061721e11370d2e9 (patch)
tree2da72eed5c2b845364eb0be0d141e890a92e546a /src
parentb83f880362244c59770311ece8a1d74af894465e (diff)
downloadmv-8e6ef0d196a2c9772225f2ac061721e11370d2e9.tar.gz
mv-8e6ef0d196a2c9772225f2ac061721e11370d2e9.tar.bz2
mv-8e6ef0d196a2c9772225f2ac061721e11370d2e9.tar.xz
mv-8e6ef0d196a2c9772225f2ac061721e11370d2e9.zip
Fix memory leak on exit.
Diffstat (limited to 'src')
-rw-r--r--src/client.cpp2
-rw-r--r--src/utils/translation/translationmanager.cpp6
-rw-r--r--src/utils/translation/translationmanager.h2
3 files changed, 10 insertions, 0 deletions
diff --git a/src/client.cpp b/src/client.cpp
index cb65c3b60..3e8eef6ed 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -798,6 +798,8 @@ void Client::gameClear()
//delete logger;
//logger = nullptr;
+ TranslationManager::close();
+
mInstance = nullptr;
}
diff --git a/src/utils/translation/translationmanager.cpp b/src/utils/translation/translationmanager.cpp
index b4ae0d949..1b68cc91d 100644
--- a/src/utils/translation/translationmanager.cpp
+++ b/src/utils/translation/translationmanager.cpp
@@ -46,6 +46,12 @@ void TranslationManager::loadCurrentLang()
translator = loadLang(getLang());
}
+void TranslationManager::close()
+{
+ delete translator;
+ translator = nullptr;
+}
+
PoDict *TranslationManager::loadLang(LangVect lang)
{
std::string name = "";
diff --git a/src/utils/translation/translationmanager.h b/src/utils/translation/translationmanager.h
index de3875b0a..39702f4f4 100644
--- a/src/utils/translation/translationmanager.h
+++ b/src/utils/translation/translationmanager.h
@@ -33,6 +33,8 @@ class TranslationManager
static void init();
+ static void close();
+
static void loadCurrentLang();
};