From 5ad97482a9f790f3a92a25587f92e7e308e9efb7 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 3 Mar 2025 10:53:04 +0100 Subject: [PATCH] QWidget: DRY the ctors, use ctor delegation Don't repeat the body in the two QWidgets ctors, call one from the other instead. This will help fighting Coverity's hallucination that QWidget::data is used uninitialized, or, after 58b9250aea0b1b41c8cbd1033149371a93a5b2c1, dereferenced while it's still nullptr. Coverity-Id: 475552 Coverity-Id: 475551 Coverity-Id: 475550 Coverity-Id: 475549 Coverity-Id: 396828 Pick-to: 6.8 6.5 Change-Id: I1f9a8b93871143b420b9c8f247e49d57510a2379 Reviewed-by: Volker Hilsheimer (cherry picked from commit 66268742861c3eb9b3d97c2758a1babbae850e1f) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/kernel/qwidget.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 7689eb967e6..54808e9f136 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -853,14 +853,8 @@ struct QWidgetExceptionCleaner \sa windowFlags */ QWidget::QWidget(QWidget *parent, Qt::WindowFlags f) - : QObject(*new QWidgetPrivate, nullptr), QPaintDevice() + : QWidget(*new QWidgetPrivate, parent, f) { - QT_TRY { - d_func()->init(parent, f); - } QT_CATCH(...) { - QWidgetExceptionCleaner::cleanup(this, d_func()); - QT_RETHROW; - } }