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:
kh1
2012-05-15 15:06:39 +02:00
committed by Eike Ziller
parent 87c664058f
commit e9b8d1f929

View File

@@ -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());