Commited region iterator fix.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42873 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2006-10-31 22:48:38 +00:00
parent 823189ee50
commit ac7d3dd157
2 changed files with 23 additions and 0 deletions

View File

@@ -94,8 +94,11 @@ class WXDLLIMPEXP_CORE wxRegionIterator: public wxObject
public: public:
wxRegionIterator(); wxRegionIterator();
wxRegionIterator(const wxRegion& region); wxRegionIterator(const wxRegion& region);
wxRegionIterator(const wxRegionIterator& ri) : wxObject(ri) { Init(); *this = ri; }
~wxRegionIterator(); ~wxRegionIterator();
wxRegionIterator& operator=(const wxRegionIterator& ri);
void Reset() { m_current = 0u; } void Reset() { m_current = 0u; }
void Reset(const wxRegion& region); void Reset(const wxRegion& region);

View File

@@ -455,3 +455,23 @@ wxRect wxRegionIterator::GetRect() const
return r; return r;
} }
wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri)
{
wxDELETEA(m_rects);
m_current = ri.m_current;
m_numRects = ri.m_numRects;
if ( m_numRects )
{
m_rects = new wxRect[m_numRects];
for ( long n = 0; n < m_numRects; n++ )
m_rects[n] = ri.m_rects[n];
}
else
{
m_rects = NULL;
}
return *this;
}