From 45a305fd5919525b8dc6cc9dc0234f242cf00874 Mon Sep 17 00:00:00 2001 From: zccrs Date: Mon, 8 Jan 2018 13:38:56 +0800 Subject: [PATCH] fix: crash at drawStandardIcon/isTabBarToolButton Change-Id: I44d0904858933021b269a04011d5945aa4fb0962 --- dstyleplugin/style.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/dstyleplugin/style.cpp b/dstyleplugin/style.cpp index ef1211a0..ea8a7080 100644 --- a/dstyleplugin/style.cpp +++ b/dstyleplugin/style.cpp @@ -1182,6 +1182,9 @@ void Style::drawItemPixmap(QPainter *painter, const QRect &rect, int alignment, bool Style::isTabBarToolButton(const QWidget *button) const { + if (Q_UNLIKELY(!button)) + return false; + if (Q_UNLIKELY(qobject_cast(button->parent()) #ifdef DTKWIDGET_CLASS_DTabBar || qobject_cast(button->parent()) @@ -1221,7 +1224,7 @@ void Style::drawStandardIcon(QStyle::StandardPixmap sp, const QStyleOption *opt, else if (hasFocus) mode = QIcon::Selected; - QPixmap pixmap = standardIcon(sp, opt, widget).pixmap(widget->window()->windowHandle(), + QPixmap pixmap = standardIcon(sp, opt, widget).pixmap(widget ? widget->window()->windowHandle() : 0, QSize(size, size), mode, sunken ? QIcon::On : QIcon::Off);