diff --git a/src/libtomahawk/Pipeline.cpp b/src/libtomahawk/Pipeline.cpp index 6e12e5734..c378c2ef0 100644 --- a/src/libtomahawk/Pipeline.cpp +++ b/src/libtomahawk/Pipeline.cpp @@ -272,9 +272,16 @@ Pipeline::reportResults( QID qid, const QList< result_ptr >& results ) } const query_ptr& q = m_qids.value( qid ); + Q_ASSERT( !q.isNull() ); + if ( q.isNull() ) + return; + QList< result_ptr > cleanResults; foreach ( const result_ptr& r, results ) { + if ( r.isNull() ) + continue; + float score = q->howSimilar( r ); r->setScore( score ); if ( !q->isFullTextQuery() && score < MINSCORE ) diff --git a/src/libtomahawk/Query.cpp b/src/libtomahawk/Query.cpp index a8c7f7d7e..24b219d7d 100644 --- a/src/libtomahawk/Query.cpp +++ b/src/libtomahawk/Query.cpp @@ -498,6 +498,11 @@ Query::toString() const float Query::howSimilar( const Tomahawk::result_ptr& r ) { + Q_ASSERT( !r->artist().isNull() ); + Q_ASSERT( !r->album().isNull() ); + if ( r->artist().isNull() || r->album().isNull() ) + return 0.0; + // result values const QString rArtistname = r->artist()->sortname(); const QString rAlbumname = r->album()->sortname();