Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.4.0 Alpha
-
None
Description
Changing the rendercontrol example's QML to use some controls (see attachment) results in a crash when closing the window.
This is because currentContext() becomes null. It is not quite clear why since we do a makeCurrent before starting the cleanup steps.
Qt5Guid.dll!QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> >::data() Line 143 C++ Qt5Guid.dll!qGetPtrHelper<QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> > >(const QScopedPointer<QObjectData,QScopedPointerDeleter<QObjectData> > & p) Line 969 C++ Qt5Guid.dll!QOpenGLContext::d_func() Line 149 C++ Qt5Guid.dll!QOpenGLContext::functions() Line 716 C++ Qt5Quickd.dll!QSGPlainTexture::~QSGPlainTexture() Line 567 C++ Qt5Quickd.dll!QSGPlainTexture::`vector deleting destructor'(unsigned int) C++ Qt5Quickd.dll!QSGAtlasTexture::Texture::~Texture() Line 431 C++ Qt5Quickd.dll!QSGAtlasTexture::Texture::`scalar deleting destructor'(unsigned int) C++ Qt5Quickd.dll!qDeleteAll<QList<QSGTexture * __ptr64>::const_iterator>(QList<QSGTexture *>::const_iterator begin, QList<QSGTexture *>::const_iterator end) Line 323 C++ Qt5Quickd.dll!qDeleteAll<QList<QSGTexture * __ptr64> >(const QList<QSGTexture *> & c) Line 332 C++ Qt5Quickd.dll!QSGRenderContext::invalidate() Line 543 C++ > Qt5Quickd.dll!QQuickRenderControl::invalidate() Line 277 C++ Qt5Quickd.dll!QQuickRenderControl::~QQuickRenderControl() Line 160 C++ rendercontrol.exe!QQuickRenderControl::`scalar deleting destructor'(unsigned int) C++ rendercontrol.exe!Window::~Window() Line 119 C++ rendercontrol.exe!main(int argc, char * * argv) Line 50 C++
Attachments
For Gerrit Dashboard: QTBUG-41278 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
94771,2 | Let QSGPlainTexture support shutting down without a GL context. | 5.4 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
95131,2 | Avoid crashing the rendercontrol example on exit | 5.4 | qt/qtdeclarative | Status: MERGED | +2 | 0 |