From 86f08862e4248ae264149fe03b167dfbbba7d548 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 21 Oct 2013 10:53:31 +0200 Subject: playlist/EmbeddedCue: use std::string for the "cuesheet" attribute --- src/playlist/EmbeddedCuePlaylistPlugin.cxx | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'src/playlist') diff --git a/src/playlist/EmbeddedCuePlaylistPlugin.cxx b/src/playlist/EmbeddedCuePlaylistPlugin.cxx index 51491b38a..ba2bad7f7 100644 --- a/src/playlist/EmbeddedCuePlaylistPlugin.cxx +++ b/src/playlist/EmbeddedCuePlaylistPlugin.cxx @@ -37,7 +37,6 @@ #include "fs/Traits.hxx" #include "util/ASCII.hxx" -#include #include #include @@ -53,7 +52,7 @@ public: /** * The value of the file's "CUESHEET" tag. */ - char *cuesheet; + std::string cuesheet; /** * The offset of the next line within "cuesheet". @@ -64,12 +63,11 @@ public: public: EmbeddedCuePlaylist() - :cuesheet(nullptr), parser(nullptr) { + :parser(nullptr) { } virtual ~EmbeddedCuePlaylist() { delete parser; - g_free(cuesheet); } virtual Song *NextSong() override; @@ -80,9 +78,9 @@ embcue_tag_pair(const char *name, const char *value, void *ctx) { EmbeddedCuePlaylist *playlist = (EmbeddedCuePlaylist *)ctx; - if (playlist->cuesheet == NULL && + if (playlist->cuesheet.empty() && StringEqualsCaseASCII(name, "cuesheet")) - playlist->cuesheet = g_strdup(value); + playlist->cuesheet = value; } static const struct tag_handler embcue_tag_handler = { @@ -103,13 +101,13 @@ embcue_playlist_open_uri(const char *uri, const auto playlist = new EmbeddedCuePlaylist(); tag_file_scan(uri, &embcue_tag_handler, playlist); - if (playlist->cuesheet == NULL) { + if (playlist->cuesheet.empty()) { tag_ape_scan2(uri, &embcue_tag_handler, playlist); - if (playlist->cuesheet == NULL) + if (playlist->cuesheet.empty()) tag_id3_scan(uri, &embcue_tag_handler, playlist); } - if (playlist->cuesheet == NULL) { + if (playlist->cuesheet.empty()) { /* no "CUESHEET" tag found */ delete playlist; return NULL; @@ -117,7 +115,7 @@ embcue_playlist_open_uri(const char *uri, playlist->filename = PathTraits::GetBaseUTF8(uri); - playlist->next = playlist->cuesheet; + playlist->next = &playlist->cuesheet[0]; playlist->parser = new CueParser(); return playlist; -- cgit v1.2.3