From a77877b54617b7a935bb6d26f649f550555df530 Mon Sep 17 00:00:00 2001 From: Anton Romanov Date: Thu, 28 May 2015 18:21:53 -0700 Subject: [PATCH] Check (qid,r) for existence before processing removal --- src/libtomahawk/Pipeline.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libtomahawk/Pipeline.cpp b/src/libtomahawk/Pipeline.cpp index 04459a9aa..680b95bbd 100644 --- a/src/libtomahawk/Pipeline.cpp +++ b/src/libtomahawk/Pipeline.cpp @@ -628,7 +628,6 @@ Pipeline::checkQIDState( const Tomahawk::query_ptr& query ) } else { - d->qidsState.remove( query->id() ); query->onResolvingFinished(); if ( !d->queries_temporary.contains( query ) ) @@ -654,12 +653,15 @@ Pipeline::decQIDState( const Tomahawk::query_ptr& query, Tomahawk::Resolver* r ) { Q_D( Pipeline ); + if ( d->qidsState.contains( query->id(), r ) ) { - QMutexLocker lock( &d->mut ); - d->qidsState.remove( query->id(), r );//Removes all matching pairs - } + { + QMutexLocker lock( &d->mut ); + d->qidsState.remove( query->id(), r );//Removes all matching pairs + } - checkQIDState( query ); + checkQIDState( query ); + } }