Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.5.3, 6.7.2
-
None
Description
Have no reproducer, just found such crashes among our users crash reports.
Unhandled exception thrown: read access violation. **event** was nullptr.
Call stack:
[Inline Frame] Qt6Quick.dll!QInputEvent::timestamp() Line 58 C++ > Qt6Quick.dll!QQuickTapHandler::setPressed(bool press, bool cancel, QPointerEvent * event, QEventPoint & point) Line 369 C++ Qt6Quick.dll!QQuickTapHandler::onGrabChanged(QQuickPointerHandler * grabber, QPointingDevice::GrabTransition transition, QPointerEvent * ev, QEventPoint & point) Line 440 C++ Qt6Quick.dll!QQuickDeliveryAgentPrivate::onGrabChanged(QObject * grabber, QPointingDevice::GrabTransition transition, const QPointerEvent * event, const QEventPoint & point) Line 1719 C++ [Inline Frame] Qt6Quick.dll!QtPrivate::FunctorCall<QtPrivate::IndexesList<0,1,2,3>,QtPrivate::List<QObject *,enum QPointingDevice::GrabTransition,QPointerEvent const *,QEventPoint const &>,void,void (__cdecl QQuickDeliveryAgentPrivate::*)(QObject *,enum QPointingDevice::GrabTransition,QPointerEvent const *,QEventPoint const &)>::call(void(QQuickDeliveryAgentPrivate::*)(QObject *, QPointingDevice::GrabTransition, const QPointerEvent *, const QEventPoint &)) Line 137 C++ [Inline Frame] Qt6Quick.dll!QtPrivate::FunctionPointer<void (__cdecl QQuickDeliveryAgentPrivate::*)(QObject *,enum QPointingDevice::GrabTransition,QPointerEvent const *,QEventPoint const &)>::call(void(QQuickDeliveryAgentPrivate::*)(QObject *, QPointingDevice::GrabTransition, const QPointerEvent *, const QEventPoint &)) Line 174 C++ Qt6Quick.dll!QtPrivate::QPrivateSlotObject<void (__cdecl QQuickDeliveryAgentPrivate::*)(QObject *,enum QPointingDevice::GrabTransition,QPointerEvent const *,QEventPoint const &),QtPrivate::List<QObject *,enum QPointingDevice::GrabTransition,QPointerEvent const *,QEventPoint const &>,void>::impl(int which, QtPrivate::QSlotObjectBase * this_, QObject * r, void * * a, bool * ret) Line 297 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++ Qt6Gui.dll!QPointingDevice::grabChanged(QObject * _t1, QPointingDevice::GrabTransition _t2, const QPointerEvent * _t3, const QEventPoint & _t4) Line 411 C++ Qt6Gui.dll!QPointingDevicePrivate::setExclusiveGrabber(const QPointerEvent * event, const QEventPoint & point, QObject * exclusiveGrabber) Line 518 C++ Qt6Quick.dll!QQuickDeliveryAgentPrivate::handleWindowDeactivate(QQuickWindow * win) Line 1315 C++ Qt6Core.dll!doActivate<0>(QObject * sender, int signal_index, void * * argv) Line 4053 C++ Qt6Core.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Line 4097 C++ [Inline Frame] Qt6Gui.dll!QGuiApplication::applicationStateChanged(Qt::ApplicationState _t1) Line 594 C++ [Inline Frame] Qt6Gui.dll!QGuiApplicationPrivate::setApplicationState(Qt::ApplicationState) Line 3819 C++ Qt6Gui.dll!QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate::ActivatedWindowEvent * e) Line 2551 C++ Qt6Gui.dll!QWindowSystemInterface::sendWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 1100 C++ Qt6Gui.dll!QWindowSystemInterface::flushWindowSystemEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 1065 C++ qwindows.dll!QWindowsWindow::handleWindowStateChange(QFlags<enum Qt::WindowState> state) Line 2511 C++ qwindows.dll!QWindowsWindow::handleResized(int wParam, __int64 lParam) Line 2280 C++ qwindows.dll!QWindowsContext::windowsProc(HWND__ * hwnd, unsigned int message, QtWindows::WindowsEventType et, unsigned __int64 wParam, __int64 lParam, __int64 * result, QWindowsWindow * * platformWindowPtr) Line 1131 C++ qwindows.dll!qWindowsWndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 1489 C++ ...
Pay attention on QQuickDeliveryAgentPrivate::handleWindowDeactivate() in the call stack, which calls
devPriv->setExclusiveGrabber(nullptr, epd.eventPoint, nullptr);
So, event is nullptr, thereby.
Attachments
Issue Links
- is duplicated by
-
QTBUG-124777 QQuickTapHandler::setPressed() assumes non-null event if not canceled
- Open
Gerrit Reviews
For Gerrit Dashboard: QTBUG-118454 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
527944,4 | WIP attempt to reproduce crash in QQuickTapHandler::setPressed() | dev | qt/qtdeclarative | Status: NEW | -2 | 0 |
557654,8 | Ensure TapHandler.pressed==false if not active; tolerate null event | dev | qt/qtdeclarative | Status: NEW | 0 | -1 |