Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
6.2.5, 6.2, 6.3.1, 6.3, 6.4.0 Beta1
-
6.2.4
-
Windows 10
-
3fb46f78cf (qt/qtdeclarative/dev) 3fb46f78cf (qt/tqtc-qtdeclarative/dev) 2fd1388366 (qt/qtdeclarative/6.3) 2fd1388366 (qt/tqtc-qtdeclarative/6.3) aebec92445 (qt/tqtc-qtdeclarative/6.2)
Description
While analyzing users crash reports I found that there are crashes in QQmlBinding::evaluate().
It seems that under some circumstances qmlEngine can be null here.
Call stack:
> Qt6Qml.dll!QQmlBinding::evaluate() Line 636 C++ Qt6Quick.dll!QQuickStateGroupPrivate::updateAutoState() Line 386 C++ Qt6Quick.dll!QQuickStateGroup::componentComplete() Line 350 C++ Qt6Quick.dll!QQuickItem::componentComplete() Line 5099 C++ Qt6Quick.dll!QQuickLoader::componentComplete() Line 807 C++ Qt6Qml.dll!QQmlObjectCreator::finalize(QQmlInstantiationInterrupt & interrupt) Line 1487 C++ Qt6Qml.dll!QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt & i) Line 364 C++ Qt6Qml.dll!QQmlIncubationController::incubateFor(int msecs) Line 409 C++ Qt6Core.dll!doActivate<0>(QObject * sender, int signal_index, void * * argv) Line 3929 C++ Qt6Core.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Line 3973 C++ Qt6Quick.dll!QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window * w, bool inExpose) Line 1584 C++ Qt6Quick.dll!QSGThreadedRenderLoop::handleUpdateRequest(QQuickWindow * window) Line 1363 C++ Qt6Quick.dll!QQuickWindow::event(QEvent * e) Line 1543 C++ Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3411 C++ Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3363 C++ Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067 C++ Qt6Gui.dll!QPlatformWindow::deliverUpdateRequest() Line 811 C++ Qt6Gui.dll!QPlatformWindow::windowEvent(QEvent * event) Line 491 C++ Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 2667 C++ Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067 C++ Qt6Core.dll!QEventDispatcherWin32Private::sendTimerEvent(int timerId) Line 409 C++ Qt6Core.dll!QEventDispatcherWin32::event(QEvent * e) Line 891 C++ ...
Attachments
For Gerrit Dashboard: QTBUG-102729 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
407293,2 | QQuickStateGroup: Check "when" binding for context before evaluating | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |
407370,2 | QQuickStateGroup: Check "when" binding for context before evaluating | 6.3 | qt/qtdeclarative | Status: MERGED | +2 | 0 |
407375,2 | QQuickStateGroup: Check "when" binding for context before evaluating | tqtc/lts-6.2 | qt/tqtc-qtdeclarative | Status: MERGED | +2 | 0 |