diff --git a/src/Base/SmartPtrPy.cpp b/src/Base/SmartPtrPy.cpp index edd1c98ee4..1a6bdf8604 100644 --- a/src/Base/SmartPtrPy.cpp +++ b/src/Base/SmartPtrPy.cpp @@ -67,6 +67,12 @@ namespace Py { Py::_XINCREF( p ); } + SmartPtr &SmartPtr::operator=( const SmartPtr &rhs ) + { + set( rhs.ptr() ); + return *this; + } + SmartPtr &SmartPtr::operator=( const Object &rhs ) { set( rhs.ptr() ); diff --git a/src/Base/SmartPtrPy.h b/src/Base/SmartPtrPy.h index 28fa59cf99..1215cddff5 100644 --- a/src/Base/SmartPtrPy.h +++ b/src/Base/SmartPtrPy.h @@ -24,6 +24,8 @@ #ifndef PY_SMARTPTRPY_H #define PY_SMARTPTRPY_H +#include + // forward declarations typedef struct _object PyObject; @@ -57,7 +59,8 @@ public: SmartPtr(const SmartPtr &ob); // Assignment acquires new ownership of pointer - SmartPtr &operator=( const Object &SmartPtr ); + SmartPtr &operator=( const SmartPtr &rhs ); + SmartPtr &operator=( const Object &rhs ); SmartPtr &operator=(PyObject *rhsp);