applied copy constructor fix to assignment operator as well
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -146,6 +146,8 @@ public:
|
|||||||
long GetHeight() const { return GetH(); }
|
long GetHeight() const { return GetH(); }
|
||||||
wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); }
|
wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); }
|
||||||
private:
|
private:
|
||||||
|
void SetRects(long numRects, wxRect *rects);
|
||||||
|
|
||||||
long m_current;
|
long m_current;
|
||||||
long m_numRects;
|
long m_numRects;
|
||||||
wxRegion m_region;
|
wxRegion m_region;
|
||||||
|
@@ -302,33 +302,47 @@ wxRegionIterator::wxRegionIterator()
|
|||||||
|
|
||||||
wxRegionIterator::~wxRegionIterator()
|
wxRegionIterator::~wxRegionIterator()
|
||||||
{
|
{
|
||||||
if (m_rects)
|
if (m_rects) {
|
||||||
delete[] m_rects;
|
delete[] m_rects;
|
||||||
|
m_rects = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionIterator::wxRegionIterator(const wxRegionIterator& iterator)
|
wxRegionIterator::wxRegionIterator(const wxRegionIterator& iterator)
|
||||||
: wxObject()
|
: wxObject()
|
||||||
, m_current(iterator.m_current)
|
, m_current(iterator.m_current)
|
||||||
, m_numRects(iterator.m_numRects)
|
, m_numRects(0)
|
||||||
, m_rects(NULL)
|
, m_rects(NULL)
|
||||||
{
|
{
|
||||||
int i;
|
SetRects(iterator.m_numRects, iterator.m_rects);
|
||||||
if (iterator.m_rects)
|
|
||||||
{
|
|
||||||
m_rects = new wxRect[iterator.m_numRects];
|
|
||||||
for (i = 0; i < iterator.m_numRects; i++)
|
|
||||||
m_rects[i] = iterator.m_rects[i];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& iterator)
|
wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& iterator)
|
||||||
{
|
{
|
||||||
m_current = iterator.m_current;
|
m_current = iterator.m_current;
|
||||||
m_numRects = iterator.m_numRects;
|
SetRects(iterator.m_numRects, iterator.m_rects);
|
||||||
m_rects = iterator.m_rects;
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Set iterator rects for region
|
||||||
|
*/
|
||||||
|
void wxRegionIterator::SetRects(long numRects, wxRect *rects)
|
||||||
|
{
|
||||||
|
if (m_rects) {
|
||||||
|
delete[] m_rects;
|
||||||
|
m_rects = NULL;
|
||||||
|
}
|
||||||
|
if (rects)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
m_rects = new wxRect[numRects];
|
||||||
|
for (i = 0; i < numRects; i++)
|
||||||
|
m_rects[i] = rects[i];
|
||||||
|
}
|
||||||
|
m_numRects = numRects;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Initialize iterator for region
|
* Initialize iterator for region
|
||||||
*/
|
*/
|
||||||
@@ -347,10 +361,10 @@ void wxRegionIterator::Reset(const wxRegion& region)
|
|||||||
m_current = 0;
|
m_current = 0;
|
||||||
m_region = region;
|
m_region = region;
|
||||||
|
|
||||||
if (m_rects)
|
if (m_rects) {
|
||||||
delete[] m_rects;
|
delete[] m_rects;
|
||||||
|
|
||||||
m_rects = NULL;
|
m_rects = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_region.Empty())
|
if (m_region.Empty())
|
||||||
m_numRects = 0;
|
m_numRects = 0;
|
||||||
|
@@ -302,33 +302,47 @@ wxRegionIterator::wxRegionIterator()
|
|||||||
|
|
||||||
wxRegionIterator::~wxRegionIterator()
|
wxRegionIterator::~wxRegionIterator()
|
||||||
{
|
{
|
||||||
if (m_rects)
|
if (m_rects) {
|
||||||
delete[] m_rects;
|
delete[] m_rects;
|
||||||
|
m_rects = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionIterator::wxRegionIterator(const wxRegionIterator& iterator)
|
wxRegionIterator::wxRegionIterator(const wxRegionIterator& iterator)
|
||||||
: wxObject()
|
: wxObject()
|
||||||
, m_current(iterator.m_current)
|
, m_current(iterator.m_current)
|
||||||
, m_numRects(iterator.m_numRects)
|
, m_numRects(0)
|
||||||
, m_rects(NULL)
|
, m_rects(NULL)
|
||||||
{
|
{
|
||||||
int i;
|
SetRects(iterator.m_numRects, iterator.m_rects);
|
||||||
if (iterator.m_rects)
|
|
||||||
{
|
|
||||||
m_rects = new wxRect[iterator.m_numRects];
|
|
||||||
for (i = 0; i < iterator.m_numRects; i++)
|
|
||||||
m_rects[i] = iterator.m_rects[i];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& iterator)
|
wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& iterator)
|
||||||
{
|
{
|
||||||
m_current = iterator.m_current;
|
m_current = iterator.m_current;
|
||||||
m_numRects = iterator.m_numRects;
|
SetRects(iterator.m_numRects, iterator.m_rects);
|
||||||
m_rects = iterator.m_rects;
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Set iterator rects for region
|
||||||
|
*/
|
||||||
|
void wxRegionIterator::SetRects(long numRects, wxRect *rects)
|
||||||
|
{
|
||||||
|
if (m_rects) {
|
||||||
|
delete[] m_rects;
|
||||||
|
m_rects = NULL;
|
||||||
|
}
|
||||||
|
if (rects)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
m_rects = new wxRect[numRects];
|
||||||
|
for (i = 0; i < numRects; i++)
|
||||||
|
m_rects[i] = rects[i];
|
||||||
|
}
|
||||||
|
m_numRects = numRects;
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Initialize iterator for region
|
* Initialize iterator for region
|
||||||
*/
|
*/
|
||||||
@@ -347,10 +361,10 @@ void wxRegionIterator::Reset(const wxRegion& region)
|
|||||||
m_current = 0;
|
m_current = 0;
|
||||||
m_region = region;
|
m_region = region;
|
||||||
|
|
||||||
if (m_rects)
|
if (m_rects) {
|
||||||
delete[] m_rects;
|
delete[] m_rects;
|
||||||
|
|
||||||
m_rects = NULL;
|
m_rects = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_region.Empty())
|
if (m_region.Empty())
|
||||||
m_numRects = 0;
|
m_numRects = 0;
|
||||||
|
Reference in New Issue
Block a user