diff options
author | Liang Qi <liang.qi@qt.io> | 2016-09-23 22:28:33 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-09-23 22:28:33 +0200 |
commit | 680dd3313cd15ab4d9d6b8b3bde77aabbd8de0b0 (patch) | |
tree | 4e8f59ad3012be8aa844288bec9e6a8216ba6056 /src/widgets/dialogs/qfontdialog.cpp | |
parent | bde3384c9e3423b2b5fec565a32e49a1f796cd68 (diff) | |
parent | d95cb94baa6302bea6ad57a9690453e9b618421e (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
src/corelib/global/qlogging.cpp
Change-Id: I9cc8f25ad897efab6a42cb5c5161b1c9402952f0
Diffstat (limited to 'src/widgets/dialogs/qfontdialog.cpp')
-rw-r--r-- | src/widgets/dialogs/qfontdialog.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/widgets/dialogs/qfontdialog.cpp b/src/widgets/dialogs/qfontdialog.cpp index c373bcf1df..b62cd58db7 100644 --- a/src/widgets/dialogs/qfontdialog.cpp +++ b/src/widgets/dialogs/qfontdialog.cpp @@ -1036,7 +1036,9 @@ void QFontDialog::done(int result) bool QFontDialogPrivate::canBeNativeDialog() const { - Q_Q(const QFontDialog); + // Don't use Q_Q here! This function is called from ~QDialog, + // so Q_Q calling q_func() invokes undefined behavior (invalid cast in q_func()). + const QDialog * const q = static_cast<const QDialog*>(q_ptr); if (nativeDialogInUse) return true; if (QCoreApplication::testAttribute(Qt::AA_DontUseNativeDialogs) |