summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Samir <a.samirh78@gmail.com>2023-08-10 21:17:30 +0300
committerAhmad Samir <a.samirh78@gmail.com>2023-08-11 16:45:24 +0300
commit99c6190bdf3906bd84ed1368a4d41abe08470f78 (patch)
treecd369da2f7eed305630e4e061e75edf0c0c9b16e
parent814b7fd3a82725a958af76282fcf56561bc92d42 (diff)
QGestureManager: prevent double-lookup in a QHash
First lookup with value(key), second lookup with remove(key). Use constFind() to get an iterator and use that instead. Pick-to: 6.6 6.5 Change-Id: Idce585ad2269be91eda0381aeb2f2d164033f71f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/widgets/kernel/qgesturemanager.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/widgets/kernel/qgesturemanager.cpp b/src/widgets/kernel/qgesturemanager.cpp
index d3eb30a577..c44bd9f972 100644
--- a/src/widgets/kernel/qgesturemanager.cpp
+++ b/src/widgets/kernel/qgesturemanager.cpp
@@ -112,8 +112,10 @@ void QGestureManager::unregisterGestureRecognizer(Qt::GestureType type)
ObjectGesture objectGesture = iter.key();
if (objectGesture.gesture == type) {
foreach (QGesture *g, iter.value()) {
- if (QGestureRecognizer *recognizer = m_gestureToRecognizer.value(g)) {
- m_gestureToRecognizer.remove(g);
+ auto it = m_gestureToRecognizer.constFind(g);
+ if (it != m_gestureToRecognizer.cend() && it.value()) {
+ QGestureRecognizer *recognizer = it.value();
+ m_gestureToRecognizer.erase(it);
m_obsoleteGestures[recognizer].insert(g);
}
}