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 ( int n = 0; n < m_numRects; n++ )
- m_rects[n] = ri.m_rects[n];
- }
- else
+ if (this != &ri)
{
- m_rects = NULL;
- }
+ wxDELETEA(m_rects);
+ m_current = ri.m_current;
+ m_numRects = ri.m_numRects;
+ if ( m_numRects )
+ {
+ m_rects = new wxRect[m_numRects];
+ memcpy(m_rects, ri.m_rects, m_numRects * sizeof m_rects[0]);
+ }
+ }
return *this;
}