diff options
Diffstat (limited to 'src/gui/accessible')
-rw-r--r-- | src/gui/accessible/qaccessiblecache.cpp | 6 |
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(); |