playlist/m3u: allocate ExtM3uPlaylist with new/delete

This commit is contained in:
Max Kellermann
2013-08-05 21:28:06 +02:00
parent 3e91f757a9
commit af63372d2b

View File

@@ -28,16 +28,18 @@
struct M3uPlaylist { struct M3uPlaylist {
struct playlist_provider base; struct playlist_provider base;
TextInputStream *tis; TextInputStream tis;
M3uPlaylist(input_stream *is)
:tis(is) {
playlist_provider_init(&base, &m3u_playlist_plugin);
}
}; };
static struct playlist_provider * static struct playlist_provider *
m3u_open_stream(struct input_stream *is) m3u_open_stream(struct input_stream *is)
{ {
M3uPlaylist *playlist = g_new(M3uPlaylist, 1); M3uPlaylist *playlist = new M3uPlaylist(is);
playlist_provider_init(&playlist->base, &m3u_playlist_plugin);
playlist->tis = new TextInputStream(is);
return &playlist->base; return &playlist->base;
} }
@@ -47,8 +49,7 @@ m3u_close(struct playlist_provider *_playlist)
{ {
M3uPlaylist *playlist = (M3uPlaylist *)_playlist; M3uPlaylist *playlist = (M3uPlaylist *)_playlist;
delete playlist->tis; delete playlist;
g_free(playlist);
} }
static Song * static Song *
@@ -59,7 +60,7 @@ m3u_read(struct playlist_provider *_playlist)
const char *line_s; const char *line_s;
do { do {
if (!playlist->tis->ReadLine(line)) if (!playlist->tis.ReadLine(line))
return NULL; return NULL;
line_s = line.c_str(); line_s = line.c_str();