playlist/memory: use std::forward_list instead of GSList

This commit is contained in:
Max Kellermann
2013-01-29 18:51:40 +01:00
parent a8b75dc4df
commit 8cad20585d
10 changed files with 109 additions and 112 deletions

View File

@@ -27,11 +27,8 @@
#include <glib.h>
struct PlsPlaylist {
GSList *songs;
};
static void pls_parser(GKeyFile *keyfile, PlsPlaylist *playlist)
static void
pls_parser(GKeyFile *keyfile, std::forward_list<SongPointer> &songs)
{
gchar *key;
gchar *value;
@@ -96,7 +93,7 @@ static void pls_parser(GKeyFile *keyfile, PlsPlaylist *playlist)
if(error) g_error_free(error);
error = NULL;
playlist->songs = g_slist_prepend(playlist->songs, song);
songs.emplace_front(song);
num_entries--;
}
@@ -150,13 +147,12 @@ pls_open_stream(struct input_stream *is)
return NULL;
}
PlsPlaylist playlist;
playlist.songs = nullptr;
pls_parser(keyfile, &playlist);
std::forward_list<SongPointer> songs;
pls_parser(keyfile, songs);
g_key_file_free(keyfile);
return new MemoryPlaylistProvider(g_slist_reverse(playlist.songs));
songs.reverse();
return new MemoryPlaylistProvider(std::move(songs));
}
static const char *const pls_suffixes[] = {