summaryrefslogtreecommitdiffstats
path: root/src/gui/accessible
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/accessible')
-rw-r--r--src/gui/accessible/qaccessiblecache.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gui/accessible/qaccessiblecache.cpp b/src/gui/accessible/qaccessiblecache.cpp
index f11883c370..a6b2d4cde4 100644
--- a/src/gui/accessible/qaccessiblecache.cpp
+++ b/src/gui/accessible/qaccessiblecache.cpp
@@ -59,8 +59,8 @@ static void cleanupAccessibleCache()
QAccessibleCache::~QAccessibleCache()
{
- for (QAccessibleInterface *iface: idToInterface.values())
- delete iface;
+ for (QAccessible::Id id: idToInterface.keys())
+ deleteInterface(id);
}
QAccessibleCache *QAccessibleCache::instance()
@@ -137,6 +137,8 @@ void QAccessibleCache::objectDestroyed(QObject* obj)
void QAccessibleCache::deleteInterface(QAccessible::Id id, QObject *obj)
{
QAccessibleInterface *iface = idToInterface.take(id);
+ if (!iface) // the interface may be deleted already
+ return;
interfaceToId.take(iface);
if (!obj)
obj = iface->object();