diff --git a/src/widgets/dialogs/qdialog.cpp b/src/widgets/dialogs/qdialog.cpp index aa5e5f6d543..d0e54e013c1 100644 --- a/src/widgets/dialogs/qdialog.cpp +++ b/src/widgets/dialogs/qdialog.cpp @@ -159,13 +159,15 @@ void QDialogPrivate::close(int resultCode) void QDialogPrivate::finalize(int resultCode, int dialogCode) { Q_Q(QDialog); + QPointer guard(q); if (dialogCode == QDialog::Accepted) emit q->accepted(); else if (dialogCode == QDialog::Rejected) emit q->rejected(); - emit q->finished(resultCode); + if (guard) + emit q->finished(resultCode); } QWindow *QDialogPrivate::transientParentWindow() const