# HG changeset patch # User Matti Hamalainen # Date 1190750949 -10800 # Node ID 65b7508913878bd6869b92d0300bb746b33562b5 # Parent b20e98407a30073749c76c0c2ce1b030e02cca74 Possibly fix a lockup problem. diff -r b20e98407a30 -r 65b750891387 src/audacious/playlist.c --- 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);