From f4f1f597d44d765a59f16a63e8c2e7d3bfeb2ea1 Mon Sep 17 00:00:00 2001 From: Jocelyn Turcotte Date: Fri, 4 Apr 2014 18:28:20 +0200 Subject: Fix a crash on startup with QOpenGLWidget After c4aabeb2b82d777bb555f836f55e1f7ae4fb4581 we now try to access q_ptr in QWidgetPrivate::setRenderToTexture. QOpenGLWidget needs to delay this call after the QObject constructor is done to make sure that setTextureChildSeen doesn't dereference q_ptr before it has been initialized. Change-Id: Icaee82c8b806f42bc7614b0ac6fe4e6026331750 Reviewed-by: Laszlo Agocs --- src/widgets/kernel/qopenglwidget.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/widgets/kernel/qopenglwidget.cpp b/src/widgets/kernel/qopenglwidget.cpp index 8b0d7d525a..d9bc2f7bbd 100644 --- a/src/widgets/kernel/qopenglwidget.cpp +++ b/src/widgets/kernel/qopenglwidget.cpp @@ -60,7 +60,6 @@ public: QOpenGLWidgetPrivate() : fbo(0), uninitialized(true) { - setRenderToTexture(); } GLuint textureId() const { return fbo ? fbo->texture() : 0; } @@ -91,6 +90,8 @@ void QOpenGLWidgetPrivate::initialize() QOpenGLWidget::QOpenGLWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(*(new QOpenGLWidgetPrivate), parent, f) { + Q_D(QOpenGLWidget); + d->setRenderToTexture(); } QOpenGLWidget::~QOpenGLWidget() -- cgit v1.2.3