diff options
author | Allan Sandfeld Jensen <[email protected]> | 2024-11-12 12:34:15 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <[email protected]> | 2024-11-13 15:22:26 +0100 |
commit | acc3ef6653c710b509e9321663986910f88ac3b4 (patch) | |
tree | 42d1b5997e7709bfa618982996e149c390974f27 /src/widgets/kernel/qapplication.cpp | |
parent | bbeb1a8343117fd22fb1abf555d46298c0f370af (diff) |
Fix ubsan warning of illegal cast and illegal method call
Avoid casting an event to a type it does not have. Instead use a static accessor class.
Pick-to: 6.8
Task-number: QTBUG-99563
Change-Id: Ideb11779b1510cd10a27fb8bc40bcc8e4849bf15
Reviewed-by: Marc Mutz <[email protected]>
Diffstat (limited to 'src/widgets/kernel/qapplication.cpp')
-rw-r--r-- | src/widgets/kernel/qapplication.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp index e8c7598a826..bc6710d1981 100644 --- a/src/widgets/kernel/qapplication.cpp +++ b/src/widgets/kernel/qapplication.cpp @@ -2762,7 +2762,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) mouse->pointingDevice()); me.m_spont = mouse->spontaneous(); me.setTimestamp(mouse->timestamp()); - QMutableSinglePointEvent::from(me).setDoubleClick(QMutableSinglePointEvent::from(mouse)->isDoubleClick()); + QMutableSinglePointEvent::setDoubleClick(&me, QMutableSinglePointEvent::isDoubleClick(mouse)); // throw away any mouse-tracking-only mouse events if (!w->hasMouseTracking() && mouse->type() == QEvent::MouseMove && mouse->buttons() == 0) { @@ -3067,7 +3067,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) #endif // QT_CONFIG(draganddrop) case QEvent::TouchBegin: { // Note: TouchUpdate and TouchEnd events are never propagated - QMutableTouchEvent *touchEvent = QMutableTouchEvent::from(static_cast<QTouchEvent *>(e)); + QTouchEvent *touchEvent = static_cast<QTouchEvent *>(e); bool eventAccepted = touchEvent->isAccepted(); bool acceptTouchEvents = w->testAttribute(Qt::WA_AcceptTouchEvents); @@ -3084,7 +3084,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) while (w) { // first, try to deliver the touch event acceptTouchEvents = w->testAttribute(Qt::WA_AcceptTouchEvents); - touchEvent->setTarget(w); + QMutableTouchEvent::setTarget(touchEvent, w); touchEvent->setAccepted(acceptTouchEvents); QPointer<QWidget> p = w; res = acceptTouchEvents && d->notify_helper(w, touchEvent); @@ -3110,7 +3110,7 @@ bool QApplication::notify(QObject *receiver, QEvent *e) const QPoint offset = w->pos(); w = w->parentWidget(); - touchEvent->setTarget(w); + QMutableTouchEvent::setTarget(touchEvent, w); for (int i = 0; i < touchEvent->pointCount(); ++i) { auto &pt = touchEvent->point(i); QMutableEventPoint::setPosition(pt, pt.position() + offset); |