[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [Amarok] 4c4d561: Fix crash on copying tracks between collection. BU
From:       Sergey Ivanov <123kash () gmail ! com>
Date:       2011-01-09 14:39:52
Message-ID: 20110109143952.D3ACEA6090 () git ! kde ! org
[Download RAW message or body]

commit 4c4d561a078262d6a8724a1d8b4fb6819b263320
branch master
Author: Sergey Ivanov <123kash@gmail.com>
Date:   Sun Jan 9 17:40:29 2011 +0300

    Fix crash on copying tracks between collection.
    BUG: 261364

diff --git a/ChangeLog b/ChangeLog
index 7851071..4c5b6aa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@ VERSION 2.4.0
     * Fixed some broken radio stream URLs.
 
   BUGFIXES:
+    * Fix crash on copying tracks between collection. (BR 261364)
     * Fix fetching of script data. BBC, Free Music Charts and others should work \
again.  (BR 261839)
     * Actually show the Splash Screen by default, as it was meant to work.
diff --git a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp \
b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp index 6322c44..078ce09 \
                100644
--- a/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
+++ b/src/core-impl/collections/db/sql/SqlCollectionLocation.cpp
@@ -192,12 +192,7 @@ SqlCollectionLocation::insert( const Meta::TrackPtr &track, \
const QString &url )  metaTrack->setTitle( track->name() );
 
     if( track->album() )
-    {
         metaTrack->setAlbum( track->album()->name() );
-        // also copy over the album cover
-        if( track->album()->hasImage() && !metaTrack->album()->hasImage() )
-            metaTrack->album()->setImage( track->album()->image().toImage() );
-    }
 
     if( track->artist() )
         metaTrack->setArtist( track->artist()->name() );
@@ -260,6 +255,12 @@ SqlCollectionLocation::insert( const Meta::TrackPtr &track, \
const QString &url )  metaTrack->addLabel( label );
 
     metaTrack->endMetaDataUpdate();
+
+    // Used to be updated after changes commit to prevent crash on NULL pointer \
access +    // if metaTrack had no album.
+    if( track->album() && track->album()->hasImage() && \
!metaTrack->album()->hasImage() ) +        metaTrack->album()->setImage( \
track->album()->image().toImage() ); +
     metaTrack->setWriteFile( true );
 
     return true;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic