diff options
-rw-r--r-- | cppuhelper/source/weak.cxx | 21 | ||||
-rw-r--r-- | include/cppuhelper/weakref.hxx | 3 |
2 files changed, 15 insertions, 9 deletions
diff --git a/cppuhelper/source/weak.cxx b/cppuhelper/source/weak.cxx index d81a41b6cc0e..14334259ee8c 100644 --- a/cppuhelper/source/weak.cxx +++ b/cppuhelper/source/weak.cxx @@ -501,17 +501,20 @@ Reference< XInterface > WeakReferenceHelper::get() const { try { - Reference< XAdapter > xAdp; - { - MutexGuard guard(cppu::getWeakMutex()); - if( m_pImpl && m_pImpl->m_XWeakConnectionPoint.is() ) - xAdp = m_pImpl->m_XWeakConnectionPoint; - } + Reference< XAdapter > xAdp; + { + MutexGuard guard(cppu::getWeakMutex()); + if( m_pImpl && m_pImpl->m_XWeakConnectionPoint.is() ) + xAdp = m_pImpl->m_XWeakConnectionPoint; + } - if (xAdp.is()) - return xAdp->queryAdapted(); + if (xAdp.is()) + return xAdp->queryAdapted(); } - catch (RuntimeException &) { OSL_ASSERT( false ); } // assert here, but no unexpected() + catch (RuntimeException &) + { + OSL_ASSERT( false ); + } // assert here, but no unexpected() return Reference< XInterface >(); } diff --git a/include/cppuhelper/weakref.hxx b/include/cppuhelper/weakref.hxx index 458bd9306706..783649418594 100644 --- a/include/cppuhelper/weakref.hxx +++ b/include/cppuhelper/weakref.hxx @@ -56,12 +56,14 @@ public: @param rWeakRef another weak ref */ WeakReferenceHelper( const WeakReferenceHelper & rWeakRef ); + /** Initialize this reference with the hard interface reference xInt. If the implementation behind xInt does not support XWeak or XInt is null then this reference will be null. @param xInt another hard interface reference */ WeakReferenceHelper( const css::uno::Reference< css::uno::XInterface > & xInt ); + /** Releases this reference. */ ~WeakReferenceHelper(); @@ -94,6 +96,7 @@ public: @return hard reference or null, if the weakly referenced interface has gone */ css::uno::Reference< css::uno::XInterface > SAL_CALL get() const; + /** Gets a hard reference to the object. @return hard reference or null, if the weakly referenced interface has gone |