summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Mutz <[email protected]>2025-03-03 10:53:04 +0100
committerMarc Mutz <[email protected]>2025-03-04 16:30:45 +0100
commitbcd29a9eab00c77bc402b9d4242f097d19c92044 (patch)
tree8ee7554ac4126661824381864e5b26f400e45268
parentc770015876390de0cc9c77a3d5b123637204b92c (diff)
QWidget: init `data` in ctor, not Private::init()
This should fix 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.9 6.8 6.5 Change-Id: I49705b8bc44082fc68a59c2c98c4e37a6d841b19 Reviewed-by: Volker Hilsheimer <[email protected]>
-rw-r--r--src/widgets/kernel/qwidget.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index 6ece5d03723..60408774772 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -852,6 +852,7 @@ QWidget::QWidget(QWidget *parent, Qt::WindowFlags f)
*/
QWidget::QWidget(QWidgetPrivate &dd, QWidget* parent, Qt::WindowFlags f)
: QObject(dd, nullptr), QPaintDevice()
+ , data(&dd.data)
{
Q_D(QWidget);
QT_TRY {
@@ -935,8 +936,6 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f)
if (allWidgets)
allWidgets->insert(q);
- q->data = &data;
-
#if QT_CONFIG(thread)
if (!parent) {
Q_ASSERT_X(QThread::isMainThread(), "QWidget",