From ef451424d774feb23b42bdcda56ec09d1cc96e2a Mon Sep 17 00:00:00 2001 From: Igor Date: Sat, 30 Jan 2016 12:00:17 +0300 Subject: [PATCH] Backport konsole changes to fix memory leaks Fixes #58 --- lib/ColorScheme.cpp | 6 +----- lib/ColorScheme.h | 2 -- lib/KeyboardTranslator.cpp | 5 +---- lib/KeyboardTranslator.h | 5 +++-- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/lib/ColorScheme.cpp b/lib/ColorScheme.cpp index 200b991..f9aa921 100644 --- a/lib/ColorScheme.cpp +++ b/lib/ColorScheme.cpp @@ -777,12 +777,8 @@ const ColorScheme* ColorSchemeManager::findColorScheme(const QString& name) return 0; } } - -ColorSchemeManager* ColorSchemeManager::theColorSchemeManager = 0; -//K_GLOBAL_STATIC( ColorSchemeManager , theColorSchemeManager ) +Q_GLOBAL_STATIC(ColorSchemeManager, theColorSchemeManager) ColorSchemeManager* ColorSchemeManager::instance() { - if (! theColorSchemeManager) - theColorSchemeManager = new ColorSchemeManager(); return theColorSchemeManager; } diff --git a/lib/ColorScheme.h b/lib/ColorScheme.h index 5f2b77e..e951b5e 100644 --- a/lib/ColorScheme.h +++ b/lib/ColorScheme.h @@ -348,8 +348,6 @@ private: bool _haveLoadedAll; static const ColorScheme _defaultColorScheme; - - static ColorSchemeManager * theColorSchemeManager; }; } diff --git a/lib/KeyboardTranslator.cpp b/lib/KeyboardTranslator.cpp index 66e1a4e..856fadb 100644 --- a/lib/KeyboardTranslator.cpp +++ b/lib/KeyboardTranslator.cpp @@ -884,11 +884,8 @@ bool KeyboardTranslatorManager::deleteTranslator(const QString& name) return false; } } -//K_GLOBAL_STATIC( KeyboardTranslatorManager , theKeyboardTranslatorManager ) -KeyboardTranslatorManager* KeyboardTranslatorManager::theKeyboardTranslatorManager = 0; +Q_GLOBAL_STATIC( KeyboardTranslatorManager , theKeyboardTranslatorManager ) KeyboardTranslatorManager* KeyboardTranslatorManager::instance() { - if (! theKeyboardTranslatorManager) - theKeyboardTranslatorManager = new KeyboardTranslatorManager(); return theKeyboardTranslatorManager; } diff --git a/lib/KeyboardTranslator.h b/lib/KeyboardTranslator.h index c63060d..37efc10 100644 --- a/lib/KeyboardTranslator.h +++ b/lib/KeyboardTranslator.h @@ -456,6 +456,9 @@ public: KeyboardTranslatorManager(); ~KeyboardTranslatorManager(); + KeyboardTranslatorManager(const KeyboardTranslatorManager&) = delete; + KeyboardTranslatorManager& operator=(const KeyboardTranslatorManager&) = delete; + /** * Adds a new translator. If a translator with the same name * already exists, it will be replaced by the new translator. @@ -507,8 +510,6 @@ private: QHash _translators; // maps translator-name -> KeyboardTranslator // instance bool _haveLoadedAll; - - static KeyboardTranslatorManager * theKeyboardTranslatorManager; }; inline int KeyboardTranslator::Entry::keyCode() const { return _keyCode; }