playlist: fix playlist_move on itself

A playlist_move command that moves an entry onto itself (both arguments
have the same index) should do nothing, but it did something broken. The
underlying reason is that it checks the prev pointer of the entry which
is temporarily removed for moving.
This commit is contained in:
wm4 2014-05-25 19:42:51 +02:00
parent f1409ceacf
commit 213ea94ee3
1 changed files with 4 additions and 1 deletions

View File

@ -114,10 +114,13 @@ void playlist_clear(struct playlist *pl)
pl->current_was_replaced = false;
}
// Moves entry such that entry->prev = at (even if at is NULL)
// Moves the entry so that it takes "at"'s place (or move to end, if at==NULL).
void playlist_move(struct playlist *pl, struct playlist_entry *entry,
struct playlist_entry *at)
{
if (entry == at)
return;
struct playlist_entry *save_current = pl->current;
bool save_replaced = pl->current_was_replaced;