check for self assignment in operator=

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Paul Cornett
2008-11-16 18:03:08 +00:00
parent 5c69ef61f3
commit a09307abba
5 changed files with 22 additions and 12 deletions

View File

@@ -175,7 +175,7 @@ public:
// assorted assignment operators // assorted assignment operators
wxFileName& operator=(const wxFileName& filename) wxFileName& operator=(const wxFileName& filename)
{ Assign(filename); return *this; } { if (this != &filename) Assign(filename); return *this; }
wxFileName& operator=(const wxString& filename) wxFileName& operator=(const wxString& filename)
{ Assign(filename); return *this; } { Assign(filename); return *this; }

View File

@@ -126,7 +126,8 @@ public:
#ifndef SWIG #ifndef SWIG
void operator=(const wxColourPropertyValue& cpv) void operator=(const wxColourPropertyValue& cpv)
{ {
Init( cpv.m_type, cpv.m_colour ); if (this != &cpv)
Init( cpv.m_type, cpv.m_colour );
} }
private: private:
@@ -289,9 +290,10 @@ public:
const wxColour& value = *wxWHITE ); const wxColour& value = *wxWHITE );
virtual ~wxColourProperty(); virtual ~wxColourProperty();
protected:
virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
virtual wxColour GetColour( int index ) const; virtual wxColour GetColour( int index ) const;
protected:
virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const; virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const;
private: private:

View File

@@ -322,7 +322,7 @@ public:
data->IncRef(); data->IncRef();
variant.SetData(data); variant.SetData(data);
variant.SetName(it->first); variant.SetName(it->first);
it++; ++it;
return true; return true;
} }
@@ -992,7 +992,8 @@ public:
#ifndef SWIG #ifndef SWIG
void operator= (const wxPGChoices& a) void operator= (const wxPGChoices& a)
{ {
AssignData(a.m_data); if (this != &a)
AssignData(a.m_data);
} }
wxPGChoiceEntry& operator[](unsigned int i) wxPGChoiceEntry& operator[](unsigned int i)
@@ -2355,9 +2356,9 @@ public:
int GetTextExtent( const wxWindow* wnd, const wxFont& font ) const; int GetTextExtent( const wxWindow* wnd, const wxFont& font ) const;
protected:
virtual wxString ValueToString( wxVariant& value, int argFlags ) const; virtual wxString ValueToString( wxVariant& value, int argFlags ) const;
protected:
void SetTextColIndex( unsigned int colInd ) void SetTextColIndex( unsigned int colInd )
{ m_capFgColIndex = (wxByte) colInd; } { m_capFgColIndex = (wxByte) colInd; }
unsigned int GetTextColIndex() const unsigned int GetTextColIndex() const

View File

@@ -234,7 +234,8 @@ private:
} \ } \
const CLASS& operator=( const CLASS& it ) \ const CLASS& operator=( const CLASS& it ) \
{ \ { \
Assign(it); \ if (this != &it) \
Assign(it); \
return *this; \ return *this; \
} \ } \
CLASS& operator++() { Next(); return *this; } \ CLASS& operator++() { Next(); return *this; } \
@@ -359,9 +360,12 @@ public:
#ifndef SWIG #ifndef SWIG
const wxPGVIterator& operator=( const wxPGVIterator& it ) const wxPGVIterator& operator=( const wxPGVIterator& it )
{ {
UnRef(); if (this != &it)
m_pIt = it.m_pIt; {
m_pIt->IncRef(); UnRef();
m_pIt = it.m_pIt;
m_pIt->IncRef();
}
return *this; return *this;
} }
#endif #endif

View File

@@ -230,8 +230,11 @@ public:
wxVector& operator=(const wxVector& vb) wxVector& operator=(const wxVector& vb)
{ {
clear(); if (this != &vb)
Copy(vb); {
clear();
Copy(vb);
}
return *this; return *this;
} }