From e3f5605c4e04bd3e5dc55ccafeb2e6fb150cb1e5 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Thu, 15 Mar 2012 19:00:14 -0400 Subject: [PATCH] All QSharedPointers used in different threads need deleteLater as custom deleter. This is some of them. --- src/libtomahawk/album.cpp | 2 +- src/libtomahawk/artist.cpp | 2 +- src/libtomahawk/database/databasecollection.cpp | 4 ++-- src/libtomahawk/database/databasecommand_loadallplaylists.cpp | 2 +- src/libtomahawk/playlist.cpp | 2 +- src/libtomahawk/playlist/dynamic/DynamicPlaylist.cpp | 2 +- src/libtomahawk/query.cpp | 4 ++-- src/libtomahawk/result.cpp | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/libtomahawk/album.cpp b/src/libtomahawk/album.cpp index 10b7b32e5..16dfc5ca4 100644 --- a/src/libtomahawk/album.cpp +++ b/src/libtomahawk/album.cpp @@ -61,7 +61,7 @@ Album::get( unsigned int id, const QString& name, const Tomahawk::artist_ptr& ar return s_albums.value( id ); } - album_ptr a = album_ptr( new Album( id, name, artist ) ); + album_ptr a = album_ptr( new Album( id, name, artist ), &QObject::deleteLater ); if ( id > 0 ) s_albums.insert( id, a ); diff --git a/src/libtomahawk/artist.cpp b/src/libtomahawk/artist.cpp index 968aff242..0171ffa23 100644 --- a/src/libtomahawk/artist.cpp +++ b/src/libtomahawk/artist.cpp @@ -61,7 +61,7 @@ Artist::get( unsigned int id, const QString& name ) return s_artists.value( id ); } - artist_ptr a = artist_ptr( new Artist( id, name ) ); + artist_ptr a = artist_ptr( new Artist( id, name ), &QObject::deleteLater ); if ( id > 0 ) s_artists.insert( id, a ); diff --git a/src/libtomahawk/database/databasecollection.cpp b/src/libtomahawk/database/databasecollection.cpp index 9baed7f31..801897a69 100644 --- a/src/libtomahawk/database/databasecollection.cpp +++ b/src/libtomahawk/database/databasecollection.cpp @@ -142,7 +142,7 @@ DatabaseCollection::autoPlaylistCreated( const source_ptr& source, const QVarian static_cast(data[6].toInt()), // dynamic mode data[7].toBool(), //shared data[8].toInt(), //lastmod - data[9].toString() ) ); //GUID + data[9].toString() ), &QObject::deleteLater ); //GUID addAutoPlaylist( p ); } @@ -160,7 +160,7 @@ DatabaseCollection::stationCreated( const source_ptr& source, const QVariantList static_cast(data[6].toInt()), // dynamic mode data[7].toBool(), //shared data[8].toInt(), //lastmod - data[9].toString() ) ); //GUID + data[9].toString() ), &QObject::deleteLater ); //GUID addStation( p ); } diff --git a/src/libtomahawk/database/databasecommand_loadallplaylists.cpp b/src/libtomahawk/database/databasecommand_loadallplaylists.cpp index 90f8cac7c..c40ac4872 100644 --- a/src/libtomahawk/database/databasecommand_loadallplaylists.cpp +++ b/src/libtomahawk/database/databasecommand_loadallplaylists.cpp @@ -71,7 +71,7 @@ DatabaseCommand_LoadAllPlaylists::exec( DatabaseImpl* dbi ) query.value(5).toBool(), //shared query.value(4).toInt(), //lastmod query.value(0).toString() //GUID - ) ); + ), &QObject::deleteLater ); plists.append( p ); } diff --git a/src/libtomahawk/playlist.cpp b/src/libtomahawk/playlist.cpp index f093c24f1..04cc0d6f6 100644 --- a/src/libtomahawk/playlist.cpp +++ b/src/libtomahawk/playlist.cpp @@ -185,7 +185,7 @@ Playlist::create( const source_ptr& author, entries << p; } - playlist_ptr playlist( new Playlist( author, guid, title, info, creator, shared, entries ) ); + playlist_ptr playlist( new Playlist( author, guid, title, info, creator, shared, entries ), &QObject::deleteLater ); // save to DB in the background // Watch for the created() signal if you need to be sure it's written. diff --git a/src/libtomahawk/playlist/dynamic/DynamicPlaylist.cpp b/src/libtomahawk/playlist/dynamic/DynamicPlaylist.cpp index 02c70eccf..602b7b7dd 100644 --- a/src/libtomahawk/playlist/dynamic/DynamicPlaylist.cpp +++ b/src/libtomahawk/playlist/dynamic/DynamicPlaylist.cpp @@ -152,7 +152,7 @@ DynamicPlaylist::create( const Tomahawk::source_ptr& author, bool autoLoad ) { - dynplaylist_ptr dynplaylist = Tomahawk::dynplaylist_ptr( new DynamicPlaylist( author, guid, title, info, creator, type, mode, shared, autoLoad ) ); + dynplaylist_ptr dynplaylist = Tomahawk::dynplaylist_ptr( new DynamicPlaylist( author, guid, title, info, creator, type, mode, shared, autoLoad ), &QObject::deleteLater ); DatabaseCommand_CreateDynamicPlaylist* cmd = new DatabaseCommand_CreateDynamicPlaylist( author, dynplaylist, autoLoad ); connect( cmd, SIGNAL(finished()), dynplaylist.data(), SIGNAL(created()) ); diff --git a/src/libtomahawk/query.cpp b/src/libtomahawk/query.cpp index 7f000aab2..7b94e4167 100644 --- a/src/libtomahawk/query.cpp +++ b/src/libtomahawk/query.cpp @@ -44,7 +44,7 @@ Query::get( const QString& artist, const QString& track, const QString& album, c if ( qid.isEmpty() ) autoResolve = false; - query_ptr q = query_ptr( new Query( artist, track, album, qid, autoResolve ) ); + query_ptr q = query_ptr( new Query( artist, track, album, qid, autoResolve ), &QObject::deleteLater ); q->setWeakRef( q.toWeakRef() ); if ( autoResolve ) @@ -58,7 +58,7 @@ query_ptr Query::get( const QString& query, const QID& qid ) { - query_ptr q = query_ptr( new Query( query, qid ) ); + query_ptr q = query_ptr( new Query( query, qid ), &QObject::deleteLater ); q->setWeakRef( q.toWeakRef() ); if ( !qid.isEmpty() ) diff --git a/src/libtomahawk/result.cpp b/src/libtomahawk/result.cpp index fb03c7aaf..43dad0afd 100644 --- a/src/libtomahawk/result.cpp +++ b/src/libtomahawk/result.cpp @@ -43,7 +43,7 @@ Result::get( const QString& url ) return s_results.value( url ); } - result_ptr r = result_ptr( new Result( url ) ); + result_ptr r = result_ptr( new Result( url ), &QObject::deleteLater ); s_results.insert( url, r ); return r;