From 84b004f0231102e06b5fc69c2ae624c48962cb54 Mon Sep 17 00:00:00 2001 From: Pekka Vuorela Date: Thu, 30 Aug 2018 15:33:06 +0300 Subject: [PATCH] [libcontact] Fix recursive resolve never finishing. Contributes to JB#42702 ResolveListener::addressResolved() implementations can do silly things like start resolving for something it just received information for. That ended up new request being filtered out as duplicate request but then never getting response with addressResolved. Above case with libcommhistory / RecentContactsModel. --- src/seasidecache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/seasidecache.cpp b/src/seasidecache.cpp index dc055c1..36671e2 100644 --- a/src/seasidecache.cpp +++ b/src/seasidecache.cpp @@ -2909,9 +2909,9 @@ void SeasideCache::addressRequestStateChanged(QContactAbstractRequest::State sta m_unknownAddresses.append(data); } + m_pendingResolve.remove(data); data.listener->addressResolved(data.first, data.second, item); delete it.key(); - m_pendingResolve.remove(data); m_resolveAddresses.erase(it); }