Browse Source

Fix memory leak

adaptive-webui-19844
Chocobo1 7 years ago
parent
commit
68c2d81072
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 10
      src/base/search/searchpluginmanager.cpp

10
src/base/search/searchpluginmanager.cpp

@ -29,6 +29,8 @@
#include "searchpluginmanager.h" #include "searchpluginmanager.h"
#include <memory>
#include <QDebug> #include <QDebug>
#include <QDir> #include <QDir>
#include <QDomDocument> #include <QDomDocument>
@ -458,7 +460,7 @@ void SearchPluginManager::update()
if (!engineElem.isNull()) { if (!engineElem.isNull()) {
QString pluginName = engineElem.tagName(); QString pluginName = engineElem.tagName();
PluginInfo *plugin = new PluginInfo; std::unique_ptr<PluginInfo> plugin {new PluginInfo {}};
plugin->name = pluginName; plugin->name = pluginName;
plugin->version = getPluginVersion(pluginPath(pluginName)); plugin->version = getPluginVersion(pluginPath(pluginName));
plugin->fullName = engineElem.elementsByTagName("name").at(0).toElement().text(); plugin->fullName = engineElem.elementsByTagName("name").at(0).toElement().text();
@ -473,15 +475,15 @@ void SearchPluginManager::update()
QStringList disabledEngines = Preferences::instance()->getSearchEngDisabled(); QStringList disabledEngines = Preferences::instance()->getSearchEngDisabled();
plugin->enabled = !disabledEngines.contains(pluginName); plugin->enabled = !disabledEngines.contains(pluginName);
updateIconPath(plugin); updateIconPath(plugin.get());
if (!m_plugins.contains(pluginName)) { if (!m_plugins.contains(pluginName)) {
m_plugins[pluginName] = plugin; m_plugins[pluginName] = plugin.release();
emit pluginInstalled(pluginName); emit pluginInstalled(pluginName);
} }
else if (m_plugins[pluginName]->version != plugin->version) { else if (m_plugins[pluginName]->version != plugin->version) {
delete m_plugins.take(pluginName); delete m_plugins.take(pluginName);
m_plugins[pluginName] = plugin; m_plugins[pluginName] = plugin.release();
emit pluginUpdated(pluginName); emit pluginUpdated(pluginName);
} }
} }

Loading…
Cancel
Save