summaryrefslogtreecommitdiff
path: root/reportdesign
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-07-13 16:17:00 +0200
committerNoel Grandin <noelgrandin@gmail.com>2015-08-03 06:37:16 +0000
commit2660d24a07866e083c5135ea263030f3e3a2e729 (patch)
tree0089d6018d4fc33a7fde955e585e77191cdd258b /reportdesign
parentbaba1d14766282bd2c592bffd79ed69f9078cfe1 (diff)
new loplugin: refcounting
This was a feature requested by mmeeks, as a result of tdf#92611. It validates that things that extend XInterface are not directly heap/stack-allocated, but have their lifecycle managed via css::uno::Reference or rtl::Reference. Change-Id: I28e3b8b236f6a4a56d0a6d6f26ad54e44b36e692 Reviewed-on: https://gerrit.libreoffice.org/16924 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'reportdesign')
-rw-r--r--reportdesign/source/ui/dlg/GroupsSorting.cxx9
1 files changed, 4 insertions, 5 deletions
diff --git a/reportdesign/source/ui/dlg/GroupsSorting.cxx b/reportdesign/source/ui/dlg/GroupsSorting.cxx
index c3e8c755adde..6acd0d937d03 100644
--- a/reportdesign/source/ui/dlg/GroupsSorting.cxx
+++ b/reportdesign/source/ui/dlg/GroupsSorting.cxx
@@ -107,7 +107,7 @@ class OFieldExpressionControl : public ::svt::EditBrowseBox
ImplSVEvent * m_nDeleteEvent;
VclPtr<OGroupsSortingDialog> m_pParent;
bool m_bIgnoreEvent;
- OFieldExpressionControlContainerListener aContainerListener;
+ css::uno::Reference<OFieldExpressionControlContainerListener> aContainerListener;
bool SaveModified(bool _bAppend);
@@ -205,7 +205,7 @@ OFieldExpressionControl::OFieldExpressionControl(OGroupsSortingDialog* _pParentD
,m_nDeleteEvent(0)
,m_pParent(_pParentDialog)
,m_bIgnoreEvent(false)
- ,aContainerListener(this)
+ ,aContainerListener(new OFieldExpressionControlContainerListener(this))
{
SetBorderStyle(WindowBorderStyle::MONO);
}
@@ -219,9 +219,8 @@ OFieldExpressionControl::~OFieldExpressionControl()
void OFieldExpressionControl::dispose()
{
- aContainerListener.WeakImplHelper1::acquire();
uno::Reference< report::XGroups > xGroups = m_pParent->getGroups();
- xGroups->removeContainerListener(&aContainerListener);
+ xGroups->removeContainerListener(aContainerListener.get());
// delete events from queue
if( m_nPasteEvent )
@@ -408,7 +407,7 @@ void OFieldExpressionControl::lateInit()
if( m_pParent->isReadOnly() )
nMode |= BrowserMode::HIDECURSOR;
SetMode(nMode);
- xGroups->addContainerListener(&aContainerListener);
+ xGroups->addContainerListener(aContainerListener.get());
}
else
// not the first call