Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
6.2.4, 6.3.2, 6.5.2
-
None
Description
I found this among our user's errors on AppCenter
QObject::disconnect: Unexpected nullptr parameter
Stack:
Qt6Core.dll!QMessageLogger::warning(const char * msg, ...) Line 644 C++ Qt6Core.dll!QObject::disconnectImpl(const QObject * sender, void * * signal, const QObject * receiver, void * * slot, const QMetaObject * senderMetaObject) Line 5196 C++ [Inline Frame] Qt6Quick.dll!QObject::disconnect(const QQuickWindow *) Line 376 C++ > Qt6Quick.dll!QQuickTapHandler::connectPreRenderSignal(bool conn) Line 375 C++ Qt6Quick.dll!QQuickTapHandler::setPressed(bool press, bool cancel, QPointerEvent * event, QEventPoint & point) Line 302 C++ Qt6Quick.dll!QQuickTapHandler::wantsEventPoint(const QPointerEvent * event, const QEventPoint & point) Line 151 C++ Qt6Quick.dll!QQuickSinglePointHandler::wantsPointerEvent(QPointerEvent * event) Line 90 C++ Qt6Quick.dll!QQuickPointerHandler::handlePointerEvent(QPointerEvent * event) Line 677 C++ Qt6Quick.dll!QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent * event) Line 1895 C++ Qt6Quick.dll!QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent * event) Line 1769 C++ Qt6Quick.dll!QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent * event) Line 1542 C++ Qt6Quick.dll!QQuickDeliveryAgent::event(QEvent * ev) Line 836 C++ Qt6Quick.dll!QQuickWindow::event(QEvent * e) Line 1499 C++ Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3352 C++ Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3304 C++ Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067 C++ Qt6Gui.dll!QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent * e) Line 2281 C++ Qt6Gui.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 1143 C++ Qt6Core.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 476 C++ Qt6Gui.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 73 C++ [Inline Frame] Qt6Core.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>) Line 136 C++ Qt6Core.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 218 C++ Qt6Core.dll!QCoreApplication::exec() Line 1388 C++
It seems par->window() is null at the moment:
void QQuickTapHandler::connectPreRenderSignal(bool conn) { auto par = parentItem(); if (!par) return; if (conn) connect(par->window(), &QQuickWindow::beforeSynchronizing, this, &QQuickTapHandler::updateTimeHeld); else disconnect(par->window(), &QQuickWindow::beforeSynchronizing, this, &QQuickTapHandler::updateTimeHeld); <-- HERE }
Unfortunately I can't reproduce this locally and provide a minimal reproducer.
Attachments
Gerrit Reviews
For Gerrit Dashboard: QTBUG-108696 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
445129,5 | TapHandler: don't (dis)connect signals to a null window | dev | qt/qtdeclarative | Status: NEW | +1 | 0 |