cid#1371142: Move semantics for css::uno::WeakReferenceHelper

Change-Id: I442b2d8061bd7d50cbf832b345a7a63461e26224
This commit is contained in:
Stephan Bergmann 2016-09-19 12:40:51 +02:00
parent 2d31990ad0
commit 4f86b7a86c
3 changed files with 24 additions and 0 deletions

View File

@ -430,6 +430,11 @@ global:
_ZN4cppu15supportsServiceEPN3com3sun4star4lang12XServiceInfoERKN3rtl8OUStringE; # cppu::supportsService(com::sun::star::lang::XServiceInfo*, rtl::OUString const&)
} UDK_3.8;
LIBO_UDK_5.3 { # LibO 5.3
global:
_ZN3com3sun4star3uno19WeakReferenceHelperaSEOS3_; # com::sun::star::uno::WeakReferenceHelper::operator=(com::sun::star::uno::WeakReferenceHelper&&)
} LIBO_UDK_3.9;
# Unique libstdc++ symbols:
GLIBCXX_3.4 {
global:

View File

@ -24,7 +24,9 @@
#include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/queryinterface.hxx>
#include <algorithm>
#include <utility>
using namespace osl;
using namespace com::sun::star::uno;
@ -485,6 +487,14 @@ WeakReferenceHelper& WeakReferenceHelper::operator=(const WeakReferenceHelper& r
return operator = ( xInt );
}
WeakReferenceHelper & WeakReferenceHelper::operator =(
WeakReferenceHelper && other)
{
clear();
std::swap(m_pImpl, other.m_pImpl);
return *this;
}
WeakReferenceHelper & SAL_CALL
WeakReferenceHelper::operator= (const Reference< XInterface > & xInt)
{

View File

@ -63,6 +63,11 @@ public:
*/
WeakReferenceHelper( const WeakReferenceHelper & rWeakRef );
#if defined LIBO_INTERNAL_ONLY
WeakReferenceHelper(WeakReferenceHelper && other): m_pImpl(other.m_pImpl)
{ other.m_pImpl = nullptr; }
#endif
/** 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.
@ -80,6 +85,10 @@ public:
*/
WeakReferenceHelper & SAL_CALL operator = ( const WeakReferenceHelper & rWeakRef );
#if defined LIBO_INTERNAL_ONLY
WeakReferenceHelper & operator =(WeakReferenceHelper && other);
#endif
/** Releases this reference and takes over hard reference xInt.
If the implementation behind xInt does not support XWeak
or XInt is null, then this reference is null.