[vlc-commits] commit: skins2: playlist a few iterator issues (Erwan Tulou )
git at videolan.org
git at videolan.org
Tue Aug 10 11:34:07 CEST 2010
vlc | branch: master | Erwan Tulou <erwan10 at videolan.org> | Mon Aug 9 22:41:30 2010 +0200| [81652244c4049260892d4def1011c82cd3e303cb] | committer: Erwan Tulou
skins2: playlist a few iterator issues
- check validity before using iterators
- don't use iterator anymore once the item is erased
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=81652244c4049260892d4def1011c82cd3e303cb
---
modules/gui/skins2/vars/playtree.cpp | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/modules/gui/skins2/vars/playtree.cpp b/modules/gui/skins2/vars/playtree.cpp
index 05cb89f..73008fc 100644
--- a/modules/gui/skins2/vars/playtree.cpp
+++ b/modules/gui/skins2/vars/playtree.cpp
@@ -149,7 +149,8 @@ void Playtree::onUpdateCurrent( bool b_active )
return;
Iterator it = findById( m_currentItem->i_id );
- it->m_playing = false;
+ if( it != end() )
+ it->m_playing = false;
m_currentItem = NULL;
}
else
@@ -164,7 +165,8 @@ void Playtree::onUpdateCurrent( bool b_active )
}
Iterator it = findById( current->i_id );
- it->m_playing = true;
+ if( it != end() )
+ it->m_playing = true;
m_currentItem = current;
playlist_Unlock( m_pPlaylist );
@@ -187,9 +189,11 @@ void Playtree::onDelete( int i_id )
Iterator item = findById( i_id ) ;
if( item != end() )
{
- if( item->parent() )
- item->parent()->removeChild( item );
- descr.b_visible = item->parent() ? item->parent()->m_expanded : true;
+ VarTree* parent = item->parent();
+ if( parent )
+ parent->removeChild( item );
+
+ descr.b_visible = parent ? parent->m_expanded : true;
notify( &descr );
}
}
More information about the vlc-commits
mailing list