From 60fb8f93cb5db02077447c24063725170f5e87a3 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Mon, 25 Feb 2019 00:48:41 -0800 Subject: [PATCH] Check for self-assignment in operator= --- src/qt/bitmap.cpp | 9 ++++++--- src/qt/region.cpp | 10 ++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/qt/bitmap.cpp b/src/qt/bitmap.cpp index 7a509c289c..b64dafb926 100644 --- a/src/qt/bitmap.cpp +++ b/src/qt/bitmap.cpp @@ -478,9 +478,12 @@ wxMask::wxMask(const wxMask &mask) wxMask& wxMask::operator=(const wxMask &mask) { - delete m_qtBitmap; - QBitmap *mask_bmp = mask.GetHandle(); - m_qtBitmap = mask_bmp ? new QBitmap(*mask_bmp) : NULL; + if (this != &mask) + { + delete m_qtBitmap; + QBitmap *mask_bmp = mask.GetHandle(); + m_qtBitmap = mask_bmp ? new QBitmap(*mask_bmp) : NULL; + } return *this; } diff --git a/src/qt/region.cpp b/src/qt/region.cpp index cbde96efe1..a85e735292 100644 --- a/src/qt/region.cpp +++ b/src/qt/region.cpp @@ -351,10 +351,12 @@ wxRegionIterator::~wxRegionIterator() wxRegionIterator& wxRegionIterator::operator=(const wxRegionIterator& ri) { - delete m_qtRects; - - m_qtRects = new QVector< QRect >( *ri.m_qtRects ); - m_pos = ri.m_pos; + if (this != &ri) + { + delete m_qtRects; + m_qtRects = new QVector< QRect >( *ri.m_qtRects ); + m_pos = ri.m_pos; + } return *this; }