check for self assignment in operator=

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62762 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2009-12-02 16:36:50 +00:00
parent 46b8d15a67
commit 2a32b8071b
3 changed files with 13 additions and 8 deletions

View File

@@ -663,7 +663,8 @@ public:
*/ */
wxAny& operator=(const wxAny &any) wxAny& operator=(const wxAny &any)
{ {
AssignAny(any); if (this != &any)
AssignAny(any);
return *this; return *this;
} }

View File

@@ -234,9 +234,12 @@ public:
*/ */
wxCFRef& operator=(const wxCFRef& otherRef) wxCFRef& operator=(const wxCFRef& otherRef)
{ {
wxCFRetain(otherRef.m_ptr); if (this != &otherRef)
wxCFRelease(m_ptr); {
m_ptr = otherRef.m_ptr; wxCFRetain(otherRef.m_ptr);
wxCFRelease(m_ptr);
m_ptr = otherRef.m_ptr;
}
return *this; return *this;
} }

View File

@@ -137,10 +137,11 @@ public:
wxSockAddressImpl& operator=(const wxSockAddressImpl& other) wxSockAddressImpl& operator=(const wxSockAddressImpl& other)
{ {
free(m_addr); if (this != &other)
{
InitFromOther(other); free(m_addr);
InitFromOther(other);
}
return *this; return *this;
} }