Mercurial > audlegacy
diff src/audacious/playlist.c @ 3636:65b750891387
Possibly fix a lockup problem.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 25 Sep 2007 23:09:09 +0300 |
parents | b20e98407a30 |
children | 8d2f06fc841c |
line wrap: on
line diff
--- a/src/audacious/playlist.c Tue Sep 25 23:06:26 2007 +0300 +++ b/src/audacious/playlist.c Tue Sep 25 23:09:09 2007 +0300 @@ -670,6 +670,7 @@ PlaylistEntry *entry; Tuple *main_tuple = NULL; gint nsubtunes = 0, i = 0; + gboolean add_flag = TRUE; g_return_if_fail(playlist != NULL); g_return_if_fail(filename != NULL); @@ -682,7 +683,7 @@ } } - for (; i <= nsubtunes; i++) { + for (; add_flag && i <= nsubtunes; i++) { gchar *filename_entry; if (nsubtunes > 0) { @@ -701,7 +702,7 @@ tuple ? tuple_get_int(tuple, FIELD_LENGTH, NULL) : -1, dec); g_free(filename_entry); - if(!playlist->tail) + if (!playlist->tail) playlist->tail = g_list_last(playlist->entries); PLAYLIST_LOCK(playlist); @@ -717,9 +718,11 @@ playlist->entries = element; playlist->tail = element; } else { // the rests - g_return_if_fail(playlist->tail != NULL); - playlist->tail->next = element; - playlist->tail = element; + if (playlist->tail != NULL) { + playlist->tail->next = element; + playlist->tail = element; + } else + add_flag = FALSE; } } else { playlist->entries = g_list_insert(playlist->entries, entry, pos);