From c33647429b179c024f0749be85c89f737a8b42db Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Wed, 21 Sep 2016 08:34:52 +0200 Subject: [PATCH] cid#1371252: Add move semantics Change-Id: I7cf1b4c92fdddbef681654c780a9ee466c33ce0b --- include/typelib/typedescription.hxx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/include/typelib/typedescription.hxx b/include/typelib/typedescription.hxx index c8f0eb24d2de..8ce75bd1691b 100644 --- a/include/typelib/typedescription.hxx +++ b/include/typelib/typedescription.hxx @@ -82,6 +82,10 @@ public: @param rDescr another TypeDescription */ inline TypeDescription( const TypeDescription & rDescr ); +#if defined LIBO_INTERNAL_ONLY + TypeDescription(TypeDescription && other): _pTypeDescr(other._pTypeDescr) + { other._pTypeDescr = nullptr; } +#endif /** Constructor: @param pTypeName a type name @@ -110,6 +114,17 @@ public: inline TypeDescription & SAL_CALL operator =( const TypeDescription & rTypeDescr ) { return this->operator =( rTypeDescr.get() ); } +#if defined LIBO_INTERNAL_ONLY + TypeDescription & operator =(TypeDescription && other) { + if (_pTypeDescr != nullptr) { + typelib_typedescription_release(_pTypeDescr); + } + _pTypeDescr = other._pTypeDescr; + other._pTypeDescr = nullptr; + return *this; + } +#endif + /** Tests whether two type descriptions are equal. @param pTypeDescr another type description