1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-03-23 17:29:42 +01:00

* Fixed crashes in DbCmd_SetPlaylistRevision.

This commit is contained in:
Christian Muehlhaeuser 2012-07-01 20:54:31 +02:00
parent 53b00db602
commit eaf48bcf51
2 changed files with 16 additions and 5 deletions

View File

@ -80,7 +80,6 @@ DatabaseCommand_SetPlaylistRevision::DatabaseCommand_SetPlaylistRevision(
tmp << s;
setOrderedguids( tmp );
setPlaylistguid( playlistguid );
}
@ -100,7 +99,6 @@ DatabaseCommand_SetPlaylistRevision::postCommitHook()
playlist_ptr playlist = source()->collection()->playlist( m_playlistguid );
if ( playlist.isNull() )
{
qDebug() << m_playlistguid;
Q_ASSERT( !playlist.isNull() );
return;
}
@ -150,7 +148,9 @@ DatabaseCommand_SetPlaylistRevision::exec( DatabaseImpl* lib )
foreach( const plentry_ptr& e, m_entries )
{
if ( e->query()->results().isEmpty() )
if ( !e->isValid() )
continue;
if ( !e->query()->numResults() )
continue;
adde.bindValue( 0, e->query()->results().first()->url() );
@ -167,6 +167,9 @@ DatabaseCommand_SetPlaylistRevision::exec( DatabaseImpl* lib )
foreach( const plentry_ptr& e, m_entries )
{
if ( !e->isValid() )
continue;
adde.bindValue( 0, e->query()->track() );
adde.bindValue( 1, e->query()->artist() );
adde.bindValue( 2, e->query()->album() );
@ -189,6 +192,9 @@ DatabaseCommand_SetPlaylistRevision::exec( DatabaseImpl* lib )
qDebug() << "Num new playlist_items to add:" << m_addedentries.length();
foreach( const plentry_ptr& e, m_addedentries )
{
if ( !e->isValid() )
continue;
// qDebug() << "Adding:" << e->guid() << e->query()->track() << e->query()->artist();
m_addedmap.insert( e->guid(), e ); // needed in postcommithook

View File

@ -77,9 +77,11 @@ public:
m_addedentries.clear();
foreach( const QVariant& v, vlist )
{
PlaylistEntry * pep = new PlaylistEntry;
PlaylistEntry* pep = new PlaylistEntry;
QJson::QObjectHelper::qvariant2qobject( v.toMap(), pep );
m_addedentries << plentry_ptr(pep);
if ( pep->isValid() )
m_addedentries << plentry_ptr( pep );
}
}
@ -88,6 +90,9 @@ public:
QVariantList vlist;
foreach( const plentry_ptr& pe, m_addedentries )
{
if ( !pe->isValid() )
continue;
QVariant v = QJson::QObjectHelper::qobject2qvariant( pe.data() );
vlist << v;
}