diff options
-rw-r--r-- | include/uno/dispatcher.hxx | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/uno/dispatcher.hxx b/include/uno/dispatcher.hxx index f7a4a0a37f6f..c32d8b312b1f 100644 --- a/include/uno/dispatcher.hxx +++ b/include/uno/dispatcher.hxx @@ -58,6 +58,12 @@ public: inline UnoInterfaceReference( uno_Interface * pUnoI ); inline UnoInterfaceReference( UnoInterfaceReference const & ref ); +#if defined LIBO_INTERNAL_ONLY + UnoInterfaceReference(UnoInterfaceReference && other): + m_pUnoI(other.m_pUnoI) + { other.m_pUnoI = nullptr; } +#endif + inline uno_Interface * get() const { return m_pUnoI; } @@ -74,6 +80,17 @@ public: uno_Interface * pUnoI ) { return set( pUnoI ); } +#if defined LIBO_INTERNAL_ONLY + UnoInterfaceReference & operator =(UnoInterfaceReference && other) { + if (m_pUnoI != nullptr) { + (*m_pUnoI->release)(m_pUnoI); + } + m_pUnoI = other.m_pUnoI; + other.m_pUnoI = nullptr; + return *this; + } +#endif + inline void dispatch( struct _typelib_TypeDescription const * pMemberType, void * pReturn, void * pArgs [], uno_Any ** ppException ) const; |