[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rockbox-cvs
Subject:    Playlist sort/shuffle: Fix data type
From:       rockbox-gerrit-noreply--- via rockbox-cvs <rockbox-cvs () lists ! haxx ! se>
Date:       2023-11-01 19:35:58
Message-ID: 202311011935.3A1JZwq33554239 () archos ! rockbox ! org
[Download RAW message or body]

commit 332a0fa9686b2272b018bc2846a8b3a7dde198fd
Author: Christian Soffke <christian.soffke@gmail.com>
Date:   Wed Nov 1 16:06:47 2023 +0100

    Playlist sort/shuffle: Fix data type
    
    I noticed that setting first_index to the
    current track when shuffling a playlist
    could fail in the Simulator.
    
    Change-Id: Ic9467bd46a93aa2d2b765271110b0baee7058208

diff --git a/apps/playlist.c b/apps/playlist.c
index 972d0ea755..b0007e49bd 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -1417,7 +1417,7 @@ static int remove_track_unlocked(struct playlist_info* playlist,
  * to make sure the current index is still pointing to correct track.
  */
 static void find_and_set_playlist_index_unlocked(struct playlist_info* playlist,
-                                                 unsigned int seek)
+                                                 unsigned long seek)
 {
     int i;
 
@@ -1443,7 +1443,7 @@ static int randomise_playlist_unlocked(struct playlist_info* playlist,
 {
     int count;
     int candidate;
-    unsigned int current = playlist->indices[playlist->index];
+    unsigned long current = playlist->indices[playlist->index];
 
     /* seed 0 is used to identify sorted playlist for resume purposes */
     if (seed == 0)
@@ -1459,7 +1459,7 @@ static int randomise_playlist_unlocked(struct playlist_info* playlist,
         candidate = rand() % (count + 1);
 
         /* now swap the values at the 'count' and 'candidate' positions */
-        int indextmp = playlist->indices[candidate];
+        unsigned long indextmp = playlist->indices[candidate];
         playlist->indices[candidate] = playlist->indices[count];
         playlist->indices[count] = indextmp;
 #ifdef HAVE_DIRCACHE
@@ -1525,7 +1525,7 @@ static int sort_compare_fn(const void* p1, const void* p2)
 static int sort_playlist_unlocked(struct playlist_info* playlist,
                                   bool start_current, bool write)
 {
-    unsigned int current = playlist->indices[playlist->index];
+    unsigned long current = playlist->indices[playlist->index];
 
     if (playlist->amount > 0)
         qsort((void*)playlist->indices, playlist->amount,
-- 
rockbox-cvs mailing list
rockbox-cvs@lists.haxx.se
https://lists.haxx.se/mailman/listinfo/rockbox-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic