diff options
author | Noel Grandin <noel@peralex.com> | 2015-07-13 16:17:00 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2015-08-03 06:37:16 +0000 |
commit | 2660d24a07866e083c5135ea263030f3e3a2e729 (patch) | |
tree | 0089d6018d4fc33a7fde955e585e77191cdd258b /reportdesign | |
parent | baba1d14766282bd2c592bffd79ed69f9078cfe1 (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.cxx | 9 |
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 |