summaryrefslogtreecommitdiff
path: root/cppuhelper/source/unourl.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cppuhelper/source/unourl.cxx')
-rw-r--r--cppuhelper/source/unourl.cxx18
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;
}