Kaydet (Commit) 4f86b7a8 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

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

Change-Id: I442b2d8061bd7d50cbf832b345a7a63461e26224
üst 2d31990a
...@@ -430,6 +430,11 @@ global: ...@@ -430,6 +430,11 @@ global:
_ZN4cppu15supportsServiceEPN3com3sun4star4lang12XServiceInfoERKN3rtl8OUStringE; # cppu::supportsService(com::sun::star::lang::XServiceInfo*, rtl::OUString const&) _ZN4cppu15supportsServiceEPN3com3sun4star4lang12XServiceInfoERKN3rtl8OUStringE; # cppu::supportsService(com::sun::star::lang::XServiceInfo*, rtl::OUString const&)
} UDK_3.8; } 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: # Unique libstdc++ symbols:
GLIBCXX_3.4 { GLIBCXX_3.4 {
global: global:
......
...@@ -24,7 +24,9 @@ ...@@ -24,7 +24,9 @@
#include <cppuhelper/interfacecontainer.hxx> #include <cppuhelper/interfacecontainer.hxx>
#include <cppuhelper/exc_hlp.hxx> #include <cppuhelper/exc_hlp.hxx>
#include <cppuhelper/queryinterface.hxx> #include <cppuhelper/queryinterface.hxx>
#include <algorithm> #include <algorithm>
#include <utility>
using namespace osl; using namespace osl;
using namespace com::sun::star::uno; using namespace com::sun::star::uno;
...@@ -485,6 +487,14 @@ WeakReferenceHelper& WeakReferenceHelper::operator=(const WeakReferenceHelper& r ...@@ -485,6 +487,14 @@ WeakReferenceHelper& WeakReferenceHelper::operator=(const WeakReferenceHelper& r
return operator = ( xInt ); return operator = ( xInt );
} }
WeakReferenceHelper & WeakReferenceHelper::operator =(
WeakReferenceHelper && other)
{
clear();
std::swap(m_pImpl, other.m_pImpl);
return *this;
}
WeakReferenceHelper & SAL_CALL WeakReferenceHelper & SAL_CALL
WeakReferenceHelper::operator= (const Reference< XInterface > & xInt) WeakReferenceHelper::operator= (const Reference< XInterface > & xInt)
{ {
......
...@@ -63,6 +63,11 @@ public: ...@@ -63,6 +63,11 @@ public:
*/ */
WeakReferenceHelper( const WeakReferenceHelper & rWeakRef ); 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 /** 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. behind xInt does not support XWeak or xInt is null then this reference will be null.
...@@ -80,6 +85,10 @@ public: ...@@ -80,6 +85,10 @@ public:
*/ */
WeakReferenceHelper & SAL_CALL operator = ( const WeakReferenceHelper & rWeakRef ); 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. /** Releases this reference and takes over hard reference xInt.
If the implementation behind xInt does not support XWeak If the implementation behind xInt does not support XWeak
or XInt is null, then this reference is null. or XInt is null, then this reference is null.
......
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