Fix crash on collection rescan

Closes: https://mirror.git.trinitydesktop.org/gitea/TDE/amarok/issues/87
Signed-off-by: Fat-Zer <fatzer2@gmail.com>
master
Fat-Zer 1 month ago
parent d23069b5e9
commit 93a44a17e4

@ -921,12 +921,15 @@ Playlist::updateEntriesStatusAdded( const TQMap<TQString,TQString> &map )
TQMap<TQString,TQPtrList<PlaylistItem>*> uniquecopy( m_uniqueMap ); TQMap<TQString,TQPtrList<PlaylistItem>*> uniquecopy( m_uniqueMap );
TQMap<TQString,TQPtrList<PlaylistItem>*>::Iterator it; TQMap<TQString,TQPtrList<PlaylistItem>*>::Iterator it;
for( it = uniquecopy.begin(); it != uniquecopy.end(); ++it ) for( it = uniquecopy.begin(); it != uniquecopy.end(); )
{ {
if( map.contains( it.key() )) // remove() may invalidate the iterator, so make a copy and increment
// it before modifying the collection
TQMap<TQString,TQPtrList<PlaylistItem>*>::Iterator cur = it++;
if( map.contains( cur.key() ))
{ {
updateEntriesStatusAdded( map[it.key()], it.key() ); updateEntriesStatusAdded( map[cur.key()], cur.key() );
uniquecopy.remove( it ); uniquecopy.remove( cur );
} }
} }

Loading…
Cancel
Save