forked from qt-creator/qt-creator
Remove some objects from the objects pool. Fixes race condition.
Since the central widget would access the local help manager in its destructor, we need to handle deletion of the objects ourself. The object pool would release it to early, thus we could never write some settings back into the collection file. Change-Id: Ib4e003214d9d0b32bee3922dd23d27624b5d110e Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This commit is contained in:
@@ -133,6 +133,8 @@ HelpPlugin::HelpPlugin()
|
|||||||
m_bookmarkItem(0),
|
m_bookmarkItem(0),
|
||||||
m_sideBar(0),
|
m_sideBar(0),
|
||||||
m_firstModeChange(true),
|
m_firstModeChange(true),
|
||||||
|
m_helpManager(0),
|
||||||
|
m_openPagesManager(0),
|
||||||
m_oldMode(0),
|
m_oldMode(0),
|
||||||
m_connectWindow(true),
|
m_connectWindow(true),
|
||||||
m_externalWindow(0),
|
m_externalWindow(0),
|
||||||
@@ -144,7 +146,11 @@ HelpPlugin::HelpPlugin()
|
|||||||
|
|
||||||
HelpPlugin::~HelpPlugin()
|
HelpPlugin::~HelpPlugin()
|
||||||
{
|
{
|
||||||
|
delete m_centralWidget;
|
||||||
|
delete m_openPagesManager;
|
||||||
delete m_rightPaneSideBarWidget;
|
delete m_rightPaneSideBarWidget;
|
||||||
|
|
||||||
|
delete m_helpManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
|
bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
|
||||||
@@ -169,8 +175,8 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
|
|||||||
qApp->installTranslator(qhelptr);
|
qApp->installTranslator(qhelptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
addAutoReleasedObject(m_helpManager = new LocalHelpManager(this));
|
m_helpManager = new LocalHelpManager(this);
|
||||||
addAutoReleasedObject(m_openPagesManager = new OpenPagesManager(this));
|
m_openPagesManager = new OpenPagesManager(this);
|
||||||
addAutoReleasedObject(m_docSettingsPage = new DocSettingsPage());
|
addAutoReleasedObject(m_docSettingsPage = new DocSettingsPage());
|
||||||
addAutoReleasedObject(m_filterSettingsPage = new FilterSettingsPage());
|
addAutoReleasedObject(m_filterSettingsPage = new FilterSettingsPage());
|
||||||
addAutoReleasedObject(m_generalSettingsPage = new GeneralSettingsPage());
|
addAutoReleasedObject(m_generalSettingsPage = new GeneralSettingsPage());
|
||||||
|
|||||||
Reference in New Issue
Block a user