From 5400ff10ba1063f1e63037233ce92c64dbf82e90 Mon Sep 17 00:00:00 2001 From: "Uwe L. Korn" Date: Thu, 18 Sep 2014 23:35:45 +0100 Subject: [PATCH] Only lock once while accessing member objects. Previously we locked/unlocked the internal mutex twice to get d->results. Also we created an unecessary copy of the list. --- src/libtomahawk/Query.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libtomahawk/Query.cpp b/src/libtomahawk/Query.cpp index 8f5f3c2e5..645af6ef0 100644 --- a/src/libtomahawk/Query.cpp +++ b/src/libtomahawk/Query.cpp @@ -166,8 +166,12 @@ track_ptr Query::track() const { Q_D( const Query ); - if ( !results().isEmpty() ) - return results().first()->track(); + + { + QMutexLocker lock( &d->mutex ); + if ( !d->results.isEmpty() ) + return d->results.first()->track(); + } return d->queryTrack; }