diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-09-23 11:59:16 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-09-23 16:13:54 +0000 |
commit | c136c978751e6d3f86fd2ca6c3d468049c0d3f51 (patch) | |
tree | 184cbe5d85a7b607457cd052c5e77925f22edf63 /pyuno/inc | |
parent | 3de25678535de1589989f88daf847767caae3f94 (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.hxx | 16 |
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; } |