diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-20 15:04:15 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-01-23 07:56:34 +0200 |
commit | 71d9f5df23ad3d7de80f86162217c599f84e5dae (patch) | |
tree | fc60a97a98faf2488c3c720325b8ac116ab6fbeb /svtools | |
parent | 6f1123d3ddd6108f486964182f92854db9a13a7e (diff) |
use rtl::Reference in TransferableDataHelper_Impl
instead of manual acquire/release
Change-Id: I0d7d71a76c84f61f87399d7b7d93be0e50ccae16
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/misc/transfer.cxx | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/svtools/source/misc/transfer.cxx b/svtools/source/misc/transfer.cxx index 08195e6af508..5e417a718f68 100644 --- a/svtools/source/misc/transfer.cxx +++ b/svtools/source/misc/transfer.cxx @@ -1104,10 +1104,9 @@ void TransferableClipboardNotifier::dispose() struct TransferableDataHelper_Impl { ::osl::Mutex maMutex; - TransferableClipboardNotifier* mpClipboardListener; + rtl::Reference<TransferableClipboardNotifier> mxClipboardListener; TransferableDataHelper_Impl() - :mpClipboardListener( nullptr ) { } }; @@ -1152,7 +1151,7 @@ TransferableDataHelper& TransferableDataHelper::operator=( const TransferableDat { ::osl::MutexGuard aGuard(mxImpl->maMutex); - const bool bWasClipboardListening = (nullptr != mxImpl->mpClipboardListener); + const bool bWasClipboardListening = mxImpl->mxClipboardListener.is(); if (bWasClipboardListening) StopClipboardListening(); @@ -1173,7 +1172,7 @@ TransferableDataHelper& TransferableDataHelper::operator=(TransferableDataHelper { ::osl::MutexGuard aGuard(mxImpl->maMutex); - const bool bWasClipboardListening = (nullptr != mxImpl->mpClipboardListener); + const bool bWasClipboardListening = mxImpl->mxClipboardListener.is(); if (bWasClipboardListening) StopClipboardListening(); @@ -2078,21 +2077,19 @@ bool TransferableDataHelper::StartClipboardListening( ) StopClipboardListening( ); - mxImpl->mpClipboardListener = new TransferableClipboardNotifier(mxClipboard, *this, mxImpl->maMutex); - mxImpl->mpClipboardListener->acquire(); + mxImpl->mxClipboardListener = new TransferableClipboardNotifier(mxClipboard, *this, mxImpl->maMutex); - return mxImpl->mpClipboardListener->isListening(); + return mxImpl->mxClipboardListener->isListening(); } void TransferableDataHelper::StopClipboardListening( ) { ::osl::MutexGuard aGuard(mxImpl->maMutex); - if (mxImpl->mpClipboardListener) + if (mxImpl->mxClipboardListener.is()) { - mxImpl->mpClipboardListener->dispose(); - mxImpl->mpClipboardListener->release(); - mxImpl->mpClipboardListener = nullptr; + mxImpl->mxClipboardListener->dispose(); + mxImpl->mxClipboardListener.clear(); } } |