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 <volker.hilsheimer@qt.io>
This commit is contained in:
parent
c770015876
commit
bcd29a9eab
@ -852,6 +852,7 @@ QWidget::QWidget(QWidget *parent, Qt::WindowFlags f)
|
|||||||
*/
|
*/
|
||||||
QWidget::QWidget(QWidgetPrivate &dd, QWidget* parent, Qt::WindowFlags f)
|
QWidget::QWidget(QWidgetPrivate &dd, QWidget* parent, Qt::WindowFlags f)
|
||||||
: QObject(dd, nullptr), QPaintDevice()
|
: QObject(dd, nullptr), QPaintDevice()
|
||||||
|
, data(&dd.data)
|
||||||
{
|
{
|
||||||
Q_D(QWidget);
|
Q_D(QWidget);
|
||||||
QT_TRY {
|
QT_TRY {
|
||||||
@ -935,8 +936,6 @@ void QWidgetPrivate::init(QWidget *parentWidget, Qt::WindowFlags f)
|
|||||||
if (allWidgets)
|
if (allWidgets)
|
||||||
allWidgets->insert(q);
|
allWidgets->insert(q);
|
||||||
|
|
||||||
q->data = &data;
|
|
||||||
|
|
||||||
#if QT_CONFIG(thread)
|
#if QT_CONFIG(thread)
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
Q_ASSERT_X(QThread::isMainThread(), "QWidget",
|
Q_ASSERT_X(QThread::isMainThread(), "QWidget",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user