diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2016-12-09 00:28:46 +0100 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-12-09 07:40:49 +0000 |
commit | f7a61c6c462ef188b82ade6c36d0c0bce1fe7f26 (patch) | |
tree | 3e709468a1b31ab34153362b5d71d475ccbfb75c | |
parent | 282e2de90fe724958c82c76f449a19e8ccbfc017 (diff) |
tdf#104105: fix Vcl lifecycle in CondFormat (reportdesign)
Avoid this error:
Window ( 7VclVBox()) with live children destroyed: N5rptui9ConditionE() * n
by calling disposeAndClear on each element of m_aConditions
m_aConditions is Conditions type
Conditions type is ::std::vector< VclPtr<Condition> >
See http://opengrok.libreoffice.org/xref/core/reportdesign/source/ui/inc/CondFormat.hxx#70
Change-Id: Ie99f8cdb5acd787892237787525d79f3231689db
Reviewed-on: https://gerrit.libreoffice.org/31775
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
(cherry picked from commit 73131fc3806ce2a7da61c93590e467e5b044c341)
Reviewed-on: https://gerrit.libreoffice.org/31780
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | reportdesign/source/ui/dlg/CondFormat.cxx | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/reportdesign/source/ui/dlg/CondFormat.cxx b/reportdesign/source/ui/dlg/CondFormat.cxx index c48f4622419c..a68f05049003 100644 --- a/reportdesign/source/ui/dlg/CondFormat.cxx +++ b/reportdesign/source/ui/dlg/CondFormat.cxx @@ -135,6 +135,12 @@ namespace rptui void ConditionalFormattingDialog::dispose() { + + for (auto i = m_aConditions.begin(); i != m_aConditions.end(); ++i) + { + i->disposeAndClear(); + } + m_aConditions.clear(); m_pConditionPlayground.clear(); m_pScrollWindow.clear(); @@ -191,7 +197,6 @@ namespace rptui Reference< XFormatCondition > xCond = m_xCopy->createFormatCondition(); ::comphelper::copyProperties(m_xCopy.get(),xCond.get()); m_xCopy->insertByIndex( _nNewCondIndex, makeAny( xCond ) ); - VclPtrInstance<Condition> pCon( m_pConditionPlayground, *this, m_rController ); pCon->setCondition( xCond ); pCon->reorderWithinParent(_nNewCondIndex); |