cppuhelper/source/gcc3.map     |    5 +++++
 cppuhelper/source/weak.cxx     |   10 ++++++++++
 include/cppuhelper/weakref.hxx |    9 +++++++++
 3 files changed, 24 insertions(+)

New commits:
commit 4f86b7a86cae630c19f6f0d1b4d6672c25e2eb3c
Author: Stephan Bergmann <sberg...@redhat.com>
Date:   Mon Sep 19 12:40:51 2016 +0200

    cid#1371142: Move semantics for css::uno::WeakReferenceHelper
    
    Change-Id: I442b2d8061bd7d50cbf832b345a7a63461e26224

diff --git a/cppuhelper/source/gcc3.map b/cppuhelper/source/gcc3.map
index 12c29834a..f1537e8 100644
--- a/cppuhelper/source/gcc3.map
+++ b/cppuhelper/source/gcc3.map
@@ -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:
diff --git a/cppuhelper/source/weak.cxx b/cppuhelper/source/weak.cxx
index 1c9b57c..9a3a8ba 100644
--- a/cppuhelper/source/weak.cxx
+++ b/cppuhelper/source/weak.cxx
@@ -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)
 {
diff --git a/include/cppuhelper/weakref.hxx b/include/cppuhelper/weakref.hxx
index 11095b7..250bb81 100644
--- a/include/cppuhelper/weakref.hxx
+++ b/include/cppuhelper/weakref.hxx
@@ -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.
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to