Kaydet (Commit) 017911fa authored tarafından Noel Grandin's avatar Noel Grandin

use rtl::Reference in OPropertyChangeListener

instead of manual acquire/release

Change-Id: Ie80253b5a59a3e3fcd52f98d9c26bcde42fe985a
üst 45e591e2
......@@ -31,8 +31,8 @@ using namespace ::com::sun::star::beans;
OPropertyChangeListener::~OPropertyChangeListener()
{
if (m_pAdapter)
m_pAdapter->dispose();
if (m_xAdapter.is())
m_xAdapter->dispose();
}
......@@ -45,29 +45,18 @@ void OPropertyChangeListener::_disposing(const EventObject&)
void OPropertyChangeListener::disposeAdapter()
{
if ( m_pAdapter )
m_pAdapter->dispose();
if ( m_xAdapter.is() )
m_xAdapter->dispose();
// will automatically set a new adapter
OSL_ENSURE( !m_pAdapter, "OPropertyChangeListener::disposeAdapter: what did dispose do?" );
OSL_ENSURE( !m_xAdapter.is(), "OPropertyChangeListener::disposeAdapter: what did dispose do?" );
}
void OPropertyChangeListener::setAdapter(OPropertyChangeMultiplexer* 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;
}
OPropertyChangeMultiplexer::OPropertyChangeMultiplexer(OPropertyChangeListener* _pListener, const Reference< XPropertySet>& _rxSet, bool _bAutoReleaseSet)
......
......@@ -23,6 +23,7 @@
#include <comphelper/propstate.hxx>
#include <cppuhelper/implbase.hxx>
#include <comphelper/comphelperdllapi.h>
#include <rtl/ref.hxx>
//= property helper classes
......@@ -42,12 +43,12 @@ namespace comphelper
{
friend class OPropertyChangeMultiplexer;
OPropertyChangeMultiplexer* m_pAdapter;
rtl::Reference<OPropertyChangeMultiplexer> m_xAdapter;
::osl::Mutex& m_rMutex;
public:
OPropertyChangeListener(::osl::Mutex& _rMutex)
: m_pAdapter(nullptr), m_rMutex(_rMutex) { }
: m_rMutex(_rMutex) { }
virtual ~OPropertyChangeListener();
/// @throws css::uno::RuntimeException
......
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