Kaydet (Commit) 71d9f5df authored tarafından Noel Grandin's avatar Noel Grandin

use rtl::Reference in TransferableDataHelper_Impl

instead of manual acquire/release

Change-Id: I0d7d71a76c84f61f87399d7b7d93be0e50ccae16
üst 6f1123d3
...@@ -1104,10 +1104,9 @@ void TransferableClipboardNotifier::dispose() ...@@ -1104,10 +1104,9 @@ void TransferableClipboardNotifier::dispose()
struct TransferableDataHelper_Impl struct TransferableDataHelper_Impl
{ {
::osl::Mutex maMutex; ::osl::Mutex maMutex;
TransferableClipboardNotifier* mpClipboardListener; rtl::Reference<TransferableClipboardNotifier> mxClipboardListener;
TransferableDataHelper_Impl() TransferableDataHelper_Impl()
:mpClipboardListener( nullptr )
{ {
} }
}; };
...@@ -1152,7 +1151,7 @@ TransferableDataHelper& TransferableDataHelper::operator=( const TransferableDat ...@@ -1152,7 +1151,7 @@ TransferableDataHelper& TransferableDataHelper::operator=( const TransferableDat
{ {
::osl::MutexGuard aGuard(mxImpl->maMutex); ::osl::MutexGuard aGuard(mxImpl->maMutex);
const bool bWasClipboardListening = (nullptr != mxImpl->mpClipboardListener); const bool bWasClipboardListening = mxImpl->mxClipboardListener.is();
if (bWasClipboardListening) if (bWasClipboardListening)
StopClipboardListening(); StopClipboardListening();
...@@ -1173,7 +1172,7 @@ TransferableDataHelper& TransferableDataHelper::operator=(TransferableDataHelper ...@@ -1173,7 +1172,7 @@ TransferableDataHelper& TransferableDataHelper::operator=(TransferableDataHelper
{ {
::osl::MutexGuard aGuard(mxImpl->maMutex); ::osl::MutexGuard aGuard(mxImpl->maMutex);
const bool bWasClipboardListening = (nullptr != mxImpl->mpClipboardListener); const bool bWasClipboardListening = mxImpl->mxClipboardListener.is();
if (bWasClipboardListening) if (bWasClipboardListening)
StopClipboardListening(); StopClipboardListening();
...@@ -2078,21 +2077,19 @@ bool TransferableDataHelper::StartClipboardListening( ) ...@@ -2078,21 +2077,19 @@ bool TransferableDataHelper::StartClipboardListening( )
StopClipboardListening( ); StopClipboardListening( );
mxImpl->mpClipboardListener = new TransferableClipboardNotifier(mxClipboard, *this, mxImpl->maMutex); mxImpl->mxClipboardListener = new TransferableClipboardNotifier(mxClipboard, *this, mxImpl->maMutex);
mxImpl->mpClipboardListener->acquire();
return mxImpl->mpClipboardListener->isListening(); return mxImpl->mxClipboardListener->isListening();
} }
void TransferableDataHelper::StopClipboardListening( ) void TransferableDataHelper::StopClipboardListening( )
{ {
::osl::MutexGuard aGuard(mxImpl->maMutex); ::osl::MutexGuard aGuard(mxImpl->maMutex);
if (mxImpl->mpClipboardListener) if (mxImpl->mxClipboardListener.is())
{ {
mxImpl->mpClipboardListener->dispose(); mxImpl->mxClipboardListener->dispose();
mxImpl->mpClipboardListener->release(); mxImpl->mxClipboardListener.clear();
mxImpl->mpClipboardListener = nullptr;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment