mirror of https://github.com/qt/qtbase.git
Fix possible null pointer dereferences.
This follows up 130c2baa93
.
Change-Id: I2f6c9b4f995af427cec9a2162b782039debf8564
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
This commit is contained in:
parent
ccc6d545c2
commit
4f1b6749c3
|
@ -1208,6 +1208,12 @@ bool QIcon::hasThemeIcon(const QString &name)
|
|||
*/
|
||||
void QIcon::setIsMask(bool isMask)
|
||||
{
|
||||
if (!d) {
|
||||
d = new QIconPrivate;
|
||||
d->engine = new QPixmapIconEngine;
|
||||
} else {
|
||||
detach();
|
||||
}
|
||||
d->is_mask = isMask;
|
||||
}
|
||||
|
||||
|
@ -1222,6 +1228,8 @@ void QIcon::setIsMask(bool isMask)
|
|||
*/
|
||||
bool QIcon::isMask() const
|
||||
{
|
||||
if (!d)
|
||||
return false;
|
||||
return d->is_mask;
|
||||
}
|
||||
|
||||
|
|
|
@ -53,6 +53,7 @@ private slots:
|
|||
void actualSize2_data(); // test with 2 pixmaps with different aspect ratio
|
||||
void actualSize2();
|
||||
void isNull();
|
||||
void isMask();
|
||||
void swap();
|
||||
void bestMatch();
|
||||
void cacheKey();
|
||||
|
@ -218,6 +219,20 @@ void tst_QIcon::isNull() {
|
|||
QVERIFY(iconSupportedFormat.actualSize(QSize(32, 32)).isValid());
|
||||
}
|
||||
|
||||
void tst_QIcon::isMask()
|
||||
{
|
||||
QIcon icon;
|
||||
icon.setIsMask(true);
|
||||
icon.addPixmap(QPixmap());
|
||||
QVERIFY(icon.isMask());
|
||||
|
||||
QIcon icon2;
|
||||
icon2.setIsMask(true);
|
||||
QVERIFY(icon2.isMask());
|
||||
icon2.setIsMask(false);
|
||||
QVERIFY(!icon2.isMask());
|
||||
}
|
||||
|
||||
void tst_QIcon::swap()
|
||||
{
|
||||
QPixmap p1(1, 1), p2(2, 2);
|
||||
|
|
Loading…
Reference in New Issue