summaryrefslogtreecommitdiff
path: root/pyuno/inc
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-09-23 11:59:16 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-09-23 16:13:54 +0000
commitc136c978751e6d3f86fd2ca6c3d468049c0d3f51 (patch)
tree184cbe5d85a7b607457cd052c5e77925f22edf63 /pyuno/inc
parent3de25678535de1589989f88daf847767caae3f94 (diff)
coverity#1371219 Missing move assignment operator
Change-Id: I72ed6082b561079b45e82d8258fa1abbe23117e2 Reviewed-on: https://gerrit.libreoffice.org/29228 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'pyuno/inc')
-rw-r--r--pyuno/inc/pyuno.hxx16
1 files changed, 13 insertions, 3 deletions
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;
}