Details
Description
Have no reproducer, just see such crashes among our users crash reports.
Unhandled exception thrown: read access violation.
this->**m_binding** was nullptr.
Call stack:
> Qt6WebEngineCore.dll!QtWebEngineCore::Compositor::Observer::compositor() Line 100 C++ Qt6WebEngineCore.dll!QtWebEngineCore::RenderWidgetHostViewQtDelegateItem::onBeforeRendering() Line 401 C++ [Inline Frame] Qt6Core.dll!QtPrivate::QSlotObjectBase::call(QObject *) Line 374 C++ Qt6Core.dll!doActivate<0>(QObject * sender, int signal_index, void * * argv) Line 4036 C++ Qt6Core.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Line 4097 C++ [Inline Frame] Qt6Quick.dll!QQuickWindow::beforeRendering() Line 853 C++ Qt6Quick.dll!QQuickWindowPrivate::renderSceneGraph() Line 637 C++ Qt6Quick.dll!QSGRenderThread::syncAndRender() Line 736 C++ Qt6Quick.dll!QSGRenderThread::run() Line 942 C++ Qt6Core.dll!QThreadPrivate::start(void * arg) Line 292 C++ [External Code]
Looks like a race. I guess
if (!m_binding) return nullptr;
should be guarded by the mutex as well.