patches/xmms1-01-rand.diff
author sartek
Wed, 30 Apr 2008 17:47:47 +0000
changeset 1068 34a92eb68d4e
child 1096 0fe822bce53a
permissions -rw-r--r--
* Wed Apr 30 2008 - [email protected] - Add patch which fixes crash when pressing random. - xmms1-01-rand.diff added

--- xmms-1.2.11/xmms/playlist.c	2007-11-16 23:51:30.000000000 +0200
+++ xmms-1.2.11.1/xmms/playlist.c	2008-04-30 05:24:49.627552191 +0300
@@ -1693,14 +1693,15 @@
 	for (node = list, i = 0; i < len; node = g_list_next(node), i++)
 		ptrs[i] = node;
 
-	j = (int)(random() / (RAND_MAX + 1.0) * len); 
-	list = ptrs[j];
+	   j = (int)((len-1) * (double) rand() / (double) RAND_MAX);
+
+	   list = ptrs[j];
 	ptrs[j]->next = NULL;
 	ptrs[j] = ptrs[0];
 
 	for (i = 1; i < len; i++)
 	{
-		j = (int)(random() / (RAND_MAX + 1.0) * (len - i));
+		j = (int)((len-i-1) * (double) rand() / (double) RAND_MAX);
 		list->prev = ptrs[i + j];
 		ptrs[i + j]->next = list;
 		list = ptrs[i + j];