vlc | branch: master | Romain Vimont <[email protected]> | Wed May 15 16:22:08 2019 +0200| [ceebb7128ad9e00bf631be1c4f2e2defdd57ef8c] | committer: Jean-Baptiste Kempf
randomizer: fix history cursor on insertion New items must always be added _before_ the 'history' cursor, so they will always move it to the right. The confusion came from an earlier implementation, where "history == 0" was synonymous with "no history" (and it was not possible to consider the whole array as history). Fixes #22305 Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ceebb7128ad9e00bf631be1c4f2e2defdd57ef8c --- src/playlist/randomizer.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/playlist/randomizer.c b/src/playlist/randomizer.c index 1490caa9a9..1bbf14c55b 100644 --- a/src/playlist/randomizer.c +++ b/src/playlist/randomizer.c @@ -423,18 +423,13 @@ randomizer_Next(struct randomizer *r) bool randomizer_Add(struct randomizer *r, vlc_playlist_item_t *items[], size_t count) { - if (r->history) - { - if (!vlc_vector_insert_all(&r->items, r->history, items, count)) - return false; - /* the insertion shifted history (and possibly next) */ - if (r->next > r->history) - r->next += count; - r->history += count; - return true; - } - - return vlc_vector_push_all(&r->items, items, count); + if (!vlc_vector_insert_all(&r->items, r->history, items, count)) + return false; + /* the insertion shifted history (and possibly next) */ + if (r->next > r->history) + r->next += count; + r->history += count; + return true; } static void _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
