diff options
author | Marc Mutz <[email protected]> | 2025-03-03 10:53:04 +0100 |
---|---|---|
committer | Marc Mutz <[email protected]> | 2025-03-04 16:30:45 +0100 |
commit | bcd29a9eab00c77bc402b9d4242f097d19c92044 (patch) | |
tree | 8ee7554ac4126661824381864e5b26f400e45268 | |
parent | c770015876390de0cc9c77a3d5b123637204b92c (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.cpp | 3 |
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", |