Fix possible mem leak, spotted by Thorbjorn.

Reviewed-by: Thorbjorn
This commit is contained in:
kh1
2010-02-25 17:32:30 +01:00
parent df7a19de9e
commit a0e306fc2f
2 changed files with 7 additions and 11 deletions

View File

@@ -44,7 +44,6 @@
#include <QtCore/QDir> #include <QtCore/QDir>
#include <QtCore/QFile> #include <QtCore/QFile>
#include <QtCore/QList> #include <QtCore/QList>
#include <QtCore/QMutexLocker>
#include <QtCore/QTextStream> #include <QtCore/QTextStream>
#include <QtGui/QAction> #include <QtGui/QAction>
@@ -52,8 +51,6 @@
namespace Qt4ProjectManager { namespace Qt4ProjectManager {
namespace Internal { namespace Internal {
QMutex MaemoManager::m_mutex;
MaemoManager *MaemoManager::m_instance = 0; MaemoManager *MaemoManager::m_instance = 0;
const QSize iconSize = QSize(24, 20); const QSize iconSize = QSize(24, 20);
@@ -65,7 +62,11 @@ MaemoManager::MaemoManager()
, m_settingsPage(new MaemoSettingsPage(this)) , m_settingsPage(new MaemoSettingsPage(this))
, m_qemuCommand(0) , m_qemuCommand(0)
{ {
Q_ASSERT(!m_instance);
m_instance = this; m_instance = this;
MaemoDeviceConfigurations::instance(this);
icon.addFile(":/qt-maemo/images/qemu-run.png", iconSize); icon.addFile(":/qt-maemo/images/qemu-run.png", iconSize);
icon.addFile(":/qt-maemo/images/qemu-stop.png", iconSize, QIcon::Normal, icon.addFile(":/qt-maemo/images/qemu-stop.png", iconSize, QIcon::Normal,
QIcon::On); QIcon::On);
@@ -73,7 +74,6 @@ MaemoManager::MaemoManager()
ExtensionSystem::PluginManager::instance()->addObject(m_runControlFactory); ExtensionSystem::PluginManager::instance()->addObject(m_runControlFactory);
ExtensionSystem::PluginManager::instance()->addObject(m_runConfigurationFactory); ExtensionSystem::PluginManager::instance()->addObject(m_runConfigurationFactory);
ExtensionSystem::PluginManager::instance()->addObject(m_settingsPage); ExtensionSystem::PluginManager::instance()->addObject(m_settingsPage);
MaemoDeviceConfigurations::instance(this);
} }
MaemoManager::~MaemoManager() MaemoManager::~MaemoManager()
@@ -81,15 +81,13 @@ MaemoManager::~MaemoManager()
ExtensionSystem::PluginManager::instance()->removeObject(m_runControlFactory); ExtensionSystem::PluginManager::instance()->removeObject(m_runControlFactory);
ExtensionSystem::PluginManager::instance()->removeObject(m_runConfigurationFactory); ExtensionSystem::PluginManager::instance()->removeObject(m_runConfigurationFactory);
ExtensionSystem::PluginManager::instance()->removeObject(m_settingsPage); ExtensionSystem::PluginManager::instance()->removeObject(m_settingsPage);
m_instance = 0;
} }
MaemoManager &MaemoManager::instance() MaemoManager &MaemoManager::instance()
{ {
if (!m_instance) { Q_ASSERT(m_instance);
QMutexLocker _(&m_mutex);
if (!m_instance)
new MaemoManager;
}
return *m_instance; return *m_instance;
} }

View File

@@ -34,7 +34,6 @@
#include <coreplugin/actionmanager/command.h> #include <coreplugin/actionmanager/command.h>
#include <QtCore/QMutex>
#include <QtCore/QObject> #include <QtCore/QObject>
#include <QtCore/QSet> #include <QtCore/QSet>
@@ -86,7 +85,6 @@ signals:
void startStopQemu(); void startStopQemu();
private: private:
static QMutex m_mutex;
static MaemoManager *m_instance; static MaemoManager *m_instance;
MaemoRunControlFactory *m_runControlFactory; MaemoRunControlFactory *m_runControlFactory;