Commit 3e91f757 authored by Max Kellermann's avatar Max Kellermann

playlist/extm3u: allocate ExtM3uPlaylist with new/delete

parent 498491ec
...@@ -33,26 +33,28 @@ ...@@ -33,26 +33,28 @@
struct ExtM3uPlaylist { struct ExtM3uPlaylist {
struct playlist_provider base; struct playlist_provider base;
TextInputStream *tis; TextInputStream tis;
ExtM3uPlaylist(input_stream *is)
:tis(is) {
playlist_provider_init(&base, &extm3u_playlist_plugin);
}
}; };
static struct playlist_provider * static struct playlist_provider *
extm3u_open_stream(struct input_stream *is) extm3u_open_stream(struct input_stream *is)
{ {
ExtM3uPlaylist *playlist = g_new(ExtM3uPlaylist, 1); ExtM3uPlaylist *playlist = new ExtM3uPlaylist(is);
playlist->tis = new TextInputStream(is);
std::string line; std::string line;
if (!playlist->tis->ReadLine(line) if (!playlist->tis.ReadLine(line)
|| strcmp(line.c_str(), "#EXTM3U") != 0) { || strcmp(line.c_str(), "#EXTM3U") != 0) {
/* no EXTM3U header: fall back to the plain m3u /* no EXTM3U header: fall back to the plain m3u
plugin */ plugin */
delete playlist->tis; delete playlist;
g_free(playlist);
return NULL; return NULL;
} }
playlist_provider_init(&playlist->base, &extm3u_playlist_plugin);
return &playlist->base; return &playlist->base;
} }
...@@ -61,8 +63,7 @@ extm3u_close(struct playlist_provider *_playlist) ...@@ -61,8 +63,7 @@ extm3u_close(struct playlist_provider *_playlist)
{ {
ExtM3uPlaylist *playlist = (ExtM3uPlaylist *)_playlist; ExtM3uPlaylist *playlist = (ExtM3uPlaylist *)_playlist;
delete playlist->tis; delete playlist;
g_free(playlist);
} }
/** /**
...@@ -115,7 +116,7 @@ extm3u_read(struct playlist_provider *_playlist) ...@@ -115,7 +116,7 @@ extm3u_read(struct playlist_provider *_playlist)
Song *song; Song *song;
do { do {
if (!playlist->tis->ReadLine(line)) { if (!playlist->tis.ReadLine(line)) {
delete tag; delete tag;
return NULL; return NULL;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment