From c136c978751e6d3f86fd2ca6c3d468049c0d3f51 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 23 Sep 2016 11:59:16 +0100 Subject: coverity#1371219 Missing move assignment operator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I72ed6082b561079b45e82d8258fa1abbe23117e2 Reviewed-on: https://gerrit.libreoffice.org/29228 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- pyuno/inc/pyuno.hxx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'pyuno/inc') diff --git a/pyuno/inc/pyuno.hxx b/pyuno/inc/pyuno.hxx index c80d9b13f8fc..bd1166683408 100644 --- a/pyuno/inc/pyuno.hxx +++ b/pyuno/inc/pyuno.hxx @@ -101,7 +101,8 @@ public: throw std::bad_alloc(); } - PyRef( const PyRef &r ) : m( r.get() ) { Py_XINCREF( m ); } + PyRef(const PyRef &r) : m(r.get()) { Py_XINCREF(m); } + PyRef(PyRef &&r) : m(r.get()) { r.scratch(); } ~PyRef() { Py_XDECREF( m ); } @@ -113,11 +114,20 @@ public: return m; } - PyRef & operator = ( const PyRef & r ) + PyRef& operator=(const PyRef& r) { PyObject *tmp = m; m = r.getAcquired(); - Py_XDECREF( tmp ); + Py_XDECREF(tmp); + return *this; + } + + PyRef& operator=(PyRef&& r) + { + PyObject *tmp = m; + m = r.get(); + r.scratch(); + Py_XDECREF(tmp); return *this; } -- cgit