diff options
Diffstat (limited to 'cppuhelper/source/unourl.cxx')
-rw-r--r-- | cppuhelper/source/unourl.cxx | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/cppuhelper/source/unourl.cxx b/cppuhelper/source/unourl.cxx index 22250e5568eb..f131a81f68a6 100644 --- a/cppuhelper/source/unourl.cxx +++ b/cppuhelper/source/unourl.cxx @@ -140,9 +140,12 @@ UnoUrlDescriptor::~UnoUrlDescriptor() UnoUrlDescriptor & UnoUrlDescriptor::operator =(UnoUrlDescriptor const & rOther) { - std::unique_ptr<Impl> newImpl(rOther.m_pImpl->clone()); - delete m_pImpl; - m_pImpl = newImpl.release(); + if (this != &rOther) + { + std::unique_ptr<Impl> newImpl(rOther.m_pImpl->clone()); + delete m_pImpl; + m_pImpl = newImpl.release(); + } return *this; } @@ -237,9 +240,12 @@ UnoUrl::~UnoUrl() UnoUrl & UnoUrl::operator =(UnoUrl const & rOther) { - std::unique_ptr<Impl> newImpl(rOther.m_pImpl->clone()); - delete m_pImpl; - m_pImpl = newImpl.release(); + if (this != &rOther) + { + std::unique_ptr<Impl> newImpl(rOther.m_pImpl->clone()); + delete m_pImpl; + m_pImpl = newImpl.release(); + } return *this; } |