use rtl::Reference in OContainerListener
instead of manual acquire/release Change-Id: I83e6229029e662073e2e01e98f4846fb0a0ed643
This commit is contained in:
@@ -29,18 +29,16 @@ namespace comphelper
|
||||
using namespace ::com::sun::star::container;
|
||||
|
||||
OContainerListener::OContainerListener(::osl::Mutex& _rMutex)
|
||||
:m_pAdapter(nullptr)
|
||||
,m_rMutex(_rMutex)
|
||||
:m_rMutex(_rMutex)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
OContainerListener::~OContainerListener()
|
||||
{
|
||||
if (m_pAdapter)
|
||||
if (m_xAdapter.is())
|
||||
{
|
||||
m_pAdapter->dispose();
|
||||
m_pAdapter = nullptr;
|
||||
m_xAdapter->dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,19 +69,8 @@ namespace comphelper
|
||||
|
||||
void OContainerListener::setAdapter(OContainerListenerAdapter* pAdapter)
|
||||
{
|
||||
if (m_pAdapter)
|
||||
{
|
||||
::osl::MutexGuard aGuard(m_rMutex);
|
||||
m_pAdapter->release();
|
||||
m_pAdapter = nullptr;
|
||||
}
|
||||
|
||||
if (pAdapter)
|
||||
{
|
||||
::osl::MutexGuard aGuard(m_rMutex);
|
||||
m_pAdapter = pAdapter;
|
||||
m_pAdapter->acquire();
|
||||
}
|
||||
::osl::MutexGuard aGuard(m_rMutex);
|
||||
m_xAdapter = pAdapter;
|
||||
}
|
||||
|
||||
OContainerListenerAdapter::OContainerListenerAdapter(OContainerListener* _pListener,
|
||||
|
@@ -24,6 +24,7 @@
|
||||
#include <cppuhelper/implbase.hxx>
|
||||
#include <osl/mutex.hxx>
|
||||
#include <comphelper/comphelperdllapi.h>
|
||||
#include <rtl/ref.hxx>
|
||||
|
||||
|
||||
namespace comphelper
|
||||
@@ -43,8 +44,8 @@ namespace comphelper
|
||||
{
|
||||
friend class OContainerListenerAdapter;
|
||||
protected:
|
||||
OContainerListenerAdapter* m_pAdapter;
|
||||
::osl::Mutex& m_rMutex;
|
||||
rtl::Reference<OContainerListenerAdapter> m_xAdapter;
|
||||
::osl::Mutex& m_rMutex;
|
||||
|
||||
public:
|
||||
OContainerListener(::osl::Mutex& _rMutex);
|
||||
|
Reference in New Issue
Block a user