diff options
| author | Hardeep Sidhu <dyp@pobox.com> | 2006-04-03 14:25:47 +0000 |
|---|---|---|
| committer | Hardeep Sidhu <dyp@pobox.com> | 2006-04-03 14:25:47 +0000 |
| commit | 6dd728cdea3e506c5b404bc3c2dc7d8e4aaadb42 (patch) | |
| tree | 36c8ca2ab3c95082f3c6856aafb4f0c483302ae4 /apps | |
| parent | 30db2b4ac3d8a1f863183f29481f1f797aa4e7dc (diff) | |
| download | rockbox-6dd728cdea3e506c5b404bc3c2dc7d8e4aaadb42.zip rockbox-6dd728cdea3e506c5b404bc3c2dc7d8e4aaadb42.tar.gz rockbox-6dd728cdea3e506c5b404bc3c2dc7d8e4aaadb42.tar.bz2 rockbox-6dd728cdea3e506c5b404bc3c2dc7d8e4aaadb42.tar.xz | |
Fixed problems with playlist buffer full handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9454 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/playlist.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/apps/playlist.c b/apps/playlist.c index 23dfa40..7652e29 100644 --- a/apps/playlist.c +++ b/apps/playlist.c @@ -457,6 +457,7 @@ static int add_indices_to_playlist(struct playlist_info* playlist, unsigned int count = 0; bool store_index; unsigned char *p; + int result = 0; if(-1 == playlist->fd) playlist->fd = open(playlist->filename, O_RDONLY); @@ -506,16 +507,18 @@ static int add_indices_to_playlist(struct playlist_info* playlist, if(*p != '#') { + if ( playlist->amount >= playlist->max_playlist_size ) { + display_buffer_full(); + result = -1; + goto exit; + } + /* Store a new entry */ playlist->indices[ playlist->amount ] = i+count; #ifdef HAVE_DIRCACHE if (playlist->filenames) playlist->filenames[ playlist->amount ] = NULL; #endif - if ( playlist->amount >= playlist->max_playlist_size ) { - display_buffer_full(); - return -1; - } playlist->amount++; } } @@ -524,11 +527,12 @@ static int add_indices_to_playlist(struct playlist_info* playlist, i+= count; } +exit: #ifdef HAVE_DIRCACHE queue_post(&playlist_queue, PLAYLIST_LOAD_POINTERS, 0); #endif - return 0; + return result; } /* |