summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-06-01 16:22:29 +0200
committerNoel Grandin <noelgrandin@gmail.com>2016-06-06 07:01:34 +0000
commit0323253a7c67316cb96e4a64792ab4fe74aac1ca (patch)
tree81787c4ae44ff778aa41e12574cd60a624c9277b /editeng
parent4d666f5092d7c4f2ece9702dda4d874e44cdc6f7 (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.hxx2
-rw-r--r--editeng/source/xml/xmltxtexp.cxx34
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();
}