summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@digia.com>2013-10-22 17:57:46 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-23 10:18:45 +0200
commitbd3f3f31bf15f966d9d1ae0974fbc4028e6ed17e (patch)
tree99abb6f93d334bba24a1c0a133337376a83ecdf4 /src/plugins
parenta83983d8617cba0caaae2cb2d6caf82b8e4f50a2 (diff)
Android: Make platform menu more robust
Don't crash and lock up the whole device when people try to remove menu items that don't exist. Task-number: QTBUG-34246 Change-Id: I4396d252c5af93e021c9e218dbab7c0e7f190d9d Reviewed-by: BogDan Vatra <bogdan@kde.org>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/android/src/qandroidplatformmenu.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/plugins/platforms/android/src/qandroidplatformmenu.cpp b/src/plugins/platforms/android/src/qandroidplatformmenu.cpp
index 36247e86f9..253c22a12f 100644
--- a/src/plugins/platforms/android/src/qandroidplatformmenu.cpp
+++ b/src/plugins/platforms/android/src/qandroidplatformmenu.cpp
@@ -67,9 +67,11 @@ void QAndroidPlatformMenu::insertMenuItem(QPlatformMenuItem *menuItem, QPlatform
void QAndroidPlatformMenu::removeMenuItem(QPlatformMenuItem *menuItem)
{
QMutexLocker lock(&m_menuItemsMutex);
- m_menuItems.erase(qFind(m_menuItems.begin(),
- m_menuItems.end(),
- static_cast<QAndroidPlatformMenuItem *>(menuItem)));
+ PlatformMenuItemsType::iterator it = qFind(m_menuItems.begin(),
+ m_menuItems.end(),
+ static_cast<QAndroidPlatformMenuItem *>(menuItem));
+ if (it != m_menuItems.end())
+ m_menuItems.erase(it);
}
void QAndroidPlatformMenu::syncMenuItem(QPlatformMenuItem *menuItem)