Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.2.1, 5.3.0 Alpha
-
None
-
OS X
-
f844c588fc1e34e6269ba9636c2cb2706e94457b (qtdeclarative)
Description
The attached QML (run with qmlscene) creates two top-level Window, and calls Qt.quit() when one of them is closed. The engine's destruction destroys the second still-visible window. If a JS function is connected to the visibleChanged signal of that window, there is an assert:
ASSERT: "v4" in file jsruntime/qv4qobjectwrapper.cpp, line 761
5 libQt5Core_debug.5.dylib 0x0000000105012a12 qt_assert(char const*, char const*, int) + 82 (qglobal.cpp:2124)
6 libQt5Qml_debug.5.dylib 0x0000000102b07548 QV4::QObjectSlotDispatcher::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void*, bool) + 328 (qv4qobjectwrapper.cpp:761)
7 libQt5Core_debug.5.dylib 0x00000001053c6c9b QtPrivate::QSlotObjectBase::call(QObject*, void**) + 75 (qobject_impl.h:132)
8 libQt5Core_debug.5.dylib 0x00000001053c2abc QMetaObject::activate(QObject*, int, int, void**) + 2428 (qobject.cpp:3668)
9 libQt5Core_debug.5.dylib 0x00000001053c212d QMetaObject::activate(QObject*, QMetaObject const*, int, void**) + 61 (qobject.cpp:3549)
10 libQt5Gui_debug.5.dylib 0x0000000104546e6b QWindow::visibleChanged(bool) + 75 (moc_qwindow.cpp:707)
11 libQt5Gui_debug.5.dylib 0x0000000104546c6e QWindow::setVisible(bool) + 110 (qwindow.cpp:426)
12 libQt5Gui_debug.5.dylib 0x00000001045462f6 QWindow::destroy() + 198 (qwindow.cpp:1521)
Attachments
For Gerrit Dashboard: QTBUG-37351 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
80675,1 | Don't crash when a signal/slot connection outlives the engine | stable | qt/qtdeclarative | Status: MERGED | +2 | 0 |