From 68c2d81072b1e299c37cbea0c68e3be11a0173d8 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Tue, 17 Apr 2018 20:32:28 +0800 Subject: [PATCH] Fix memory leak --- src/base/search/searchpluginmanager.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/base/search/searchpluginmanager.cpp b/src/base/search/searchpluginmanager.cpp index 1643cfc37..89d08c98e 100644 --- a/src/base/search/searchpluginmanager.cpp +++ b/src/base/search/searchpluginmanager.cpp @@ -29,6 +29,8 @@ #include "searchpluginmanager.h" +#include + #include #include #include @@ -458,7 +460,7 @@ void SearchPluginManager::update() if (!engineElem.isNull()) { QString pluginName = engineElem.tagName(); - PluginInfo *plugin = new PluginInfo; + std::unique_ptr plugin {new PluginInfo {}}; plugin->name = pluginName; plugin->version = getPluginVersion(pluginPath(pluginName)); plugin->fullName = engineElem.elementsByTagName("name").at(0).toElement().text(); @@ -473,15 +475,15 @@ void SearchPluginManager::update() QStringList disabledEngines = Preferences::instance()->getSearchEngDisabled(); plugin->enabled = !disabledEngines.contains(pluginName); - updateIconPath(plugin); + updateIconPath(plugin.get()); if (!m_plugins.contains(pluginName)) { - m_plugins[pluginName] = plugin; + m_plugins[pluginName] = plugin.release(); emit pluginInstalled(pluginName); } else if (m_plugins[pluginName]->version != plugin->version) { delete m_plugins.take(pluginName); - m_plugins[pluginName] = plugin; + m_plugins[pluginName] = plugin.release(); emit pluginUpdated(pluginName); } }