diff options
author | Noel Grandin <noel@peralex.com> | 2016-06-01 16:22:29 +0200 |
---|---|---|
committer | Noel Grandin <noelgrandin@gmail.com> | 2016-06-06 07:01:34 +0000 |
commit | 0323253a7c67316cb96e4a64792ab4fe74aac1ca (patch) | |
tree | 81787c4ae44ff778aa41e12574cd60a624c9277b /editeng | |
parent | 4d666f5092d7c4f2ece9702dda4d874e44cdc6f7 (diff) |
remove some manual ref-counting
triggered when I noticed a class doing acquire() in the
constructor and then release() in the destructor.
found mostly by
git grep -n -B5 -e '->release()'
Change-Id: I96e43a3d30ffd9ae9a34275f24cd914d8f7b026f
Reviewed-on: https://gerrit.libreoffice.org/25806
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/source/xml/editsource.hxx | 2 | ||||
-rw-r--r-- | editeng/source/xml/xmltxtexp.cxx | 34 |
2 files changed, 8 insertions, 28 deletions
diff --git a/editeng/source/xml/editsource.hxx b/editeng/source/xml/editsource.hxx index 4b49838448ad..a22728f34e4b 100644 --- a/editeng/source/xml/editsource.hxx +++ b/editeng/source/xml/editsource.hxx @@ -38,7 +38,7 @@ public: private: explicit SvxEditEngineSource( SvxEditEngineSourceImpl* pImpl ); - SvxEditEngineSourceImpl* mpImpl; + rtl::Reference<SvxEditEngineSourceImpl> mxImpl; }; #endif diff --git a/editeng/source/xml/xmltxtexp.cxx b/editeng/source/xml/xmltxtexp.cxx index a291f76964af..348aa2e73eb7 100644 --- a/editeng/source/xml/xmltxtexp.cxx +++ b/editeng/source/xml/xmltxtexp.cxx @@ -59,28 +59,22 @@ using namespace cppu; class SvxEditEngineSourceImpl; -class SvxEditEngineSourceImpl +class SvxEditEngineSourceImpl : public salhelper::SimpleReferenceObject { private: - oslInterlockedCount maRefCount; - EditEngine* mpEditEngine; SvxTextForwarder* mpTextForwarder; - ~SvxEditEngineSourceImpl(); + virtual ~SvxEditEngineSourceImpl(); public: explicit SvxEditEngineSourceImpl( EditEngine* pEditEngine ); - void SAL_CALL acquire(); - void SAL_CALL release(); - SvxTextForwarder* GetTextForwarder(); }; SvxEditEngineSourceImpl::SvxEditEngineSourceImpl( EditEngine* pEditEngine ) -: maRefCount(0), - mpEditEngine( pEditEngine ), +: mpEditEngine( pEditEngine ), mpTextForwarder(nullptr) { } @@ -90,17 +84,6 @@ SvxEditEngineSourceImpl::~SvxEditEngineSourceImpl() delete mpTextForwarder; } -void SAL_CALL SvxEditEngineSourceImpl::acquire() -{ - osl_atomic_increment( &maRefCount ); -} - -void SAL_CALL SvxEditEngineSourceImpl::release() -{ - if( ! osl_atomic_decrement( &maRefCount ) ) - delete this; -} - SvxTextForwarder* SvxEditEngineSourceImpl::GetTextForwarder() { if (!mpTextForwarder) @@ -111,30 +94,27 @@ SvxTextForwarder* SvxEditEngineSourceImpl::GetTextForwarder() // SvxTextEditSource SvxEditEngineSource::SvxEditEngineSource( EditEngine* pEditEngine ) + : mxImpl( new SvxEditEngineSourceImpl( pEditEngine ) ) { - mpImpl = new SvxEditEngineSourceImpl( pEditEngine ); - mpImpl->acquire(); } SvxEditEngineSource::SvxEditEngineSource( SvxEditEngineSourceImpl* pImpl ) + : mxImpl(pImpl) { - mpImpl = pImpl; - mpImpl->acquire(); } SvxEditEngineSource::~SvxEditEngineSource() { - mpImpl->release(); } SvxEditSource* SvxEditEngineSource::Clone() const { - return new SvxEditEngineSource( mpImpl ); + return new SvxEditEngineSource( mxImpl.get() ); } SvxTextForwarder* SvxEditEngineSource::GetTextForwarder() { - return mpImpl->GetTextForwarder(); + return mxImpl->GetTextForwarder(); } |