]> git.sesse.net Git - vlc/commitdiff
Don't fuck up index on delete (fix crash for skins2) - Refs #205
authorClément Stenac <zorglub@videolan.org>
Mon, 20 Jun 2005 16:42:10 +0000 (16:42 +0000)
committerClément Stenac <zorglub@videolan.org>
Mon, 20 Jun 2005 16:42:10 +0000 (16:42 +0000)
src/playlist/item-ext.c

index 20466aafafe66a7ebd853d1fb94a8bd032dd6829..7a9434868b2b0f7b04c24c45fd7c9d690b258b20 100644 (file)
@@ -622,6 +622,7 @@ int playlist_Replace( playlist_t *p_playlist, playlist_item_t *p_olditem,
 int playlist_Delete( playlist_t * p_playlist, int i_id )
 {
     int i, i_top, i_bottom;
+    int i_pos;
     vlc_bool_t b_flag = VLC_FALSE;
 
     playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id );
@@ -668,6 +669,14 @@ int playlist_Delete( playlist_t * p_playlist, int i_id )
         b_flag = VLC_TRUE;
     }
 
+    /* Get position and update index if needed */
+    i_pos = playlist_GetPositionById( p_playlist, i_id );
+
+    if( i_pos >= 0 && i_pos <= p_playlist->i_index )
+    {
+        p_playlist->i_index--;
+    }
+
     msg_Dbg( p_playlist, "deleting playlist item `%s'",
                           p_item->input.psz_name );