From 275f9cd9376ed674c09f29199dc138d3e5e918c7 Mon Sep 17 00:00:00 2001 From: Jacek Jendrzej Date: Wed, 22 Jan 2020 19:15:34 +0100 Subject: [PATCH] plugins_hide: fix memleak Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/641f37c0de0be3701ca2f6edd4e0b4ffeca9414e Author: Jacek Jendrzej Date: 2020-01-22 (Wed, 22 Jan 2020) --- src/gui/plugins_hide.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/gui/plugins_hide.cpp b/src/gui/plugins_hide.cpp index 69745aa43..b81bbf48e 100644 --- a/src/gui/plugins_hide.cpp +++ b/src/gui/plugins_hide.cpp @@ -75,21 +75,26 @@ int CPluginsHideMenu::menu() unsigned int maxPlugins = g_Plugins->getNumberOfPlugins(); int isHidden[maxPlugins]; std::string file[maxPlugins]; - + CPluginsHideNotifier * pluginsNotifier[maxPlugins]; for (unsigned int i = 0; i < maxPlugins; i++) { std::string tmp = g_Plugins->getName(i); file[i] = g_Plugins->getCfgFile(i); isHidden[i] = g_Plugins->isHidden(i); - CPluginsHideNotifier * pluginsNotifier = new CPluginsHideNotifier(file[i].c_str()); - CMenuOptionChooser * mc = new CMenuOptionChooser(tmp.c_str(), &isHidden[i], PLUGIN_HIDE_OPTIONS, PLUGIN_HIDE_OPTIONS_COUNT, true, pluginsNotifier); + pluginsNotifier[i] = new CPluginsHideNotifier(file[i].c_str()); + CMenuOptionChooser * mc = new CMenuOptionChooser(tmp.c_str(), &isHidden[i], PLUGIN_HIDE_OPTIONS, PLUGIN_HIDE_OPTIONS_COUNT, true, pluginsNotifier[i]); mc->setHint(NEUTRINO_ICON_HINT_IMAGELOGO, LOCALE_MENU_HINT_PLUGINS_HIDE); pluginsHideMenu->addItem(mc); } int res = pluginsHideMenu->exec(NULL,""); pluginsHideMenu->hide(); + for (unsigned int i = 0; i < maxPlugins; i++) + { + if(pluginsNotifier[i]) + delete pluginsNotifier[i]; + } delete pluginsHideMenu; return res; }