summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/decoder/plugins/VorbisDecoderPlugin.cxx3
-rw-r--r--src/lib/xiph/VorbisComments.cxx4
-rw-r--r--src/lib/xiph/VorbisComments.hxx4
3 files changed, 6 insertions, 5 deletions
diff --git a/src/decoder/plugins/VorbisDecoderPlugin.cxx b/src/decoder/plugins/VorbisDecoderPlugin.cxx
index c99427fd9..1540c8b05 100644
--- a/src/decoder/plugins/VorbisDecoderPlugin.cxx
+++ b/src/decoder/plugins/VorbisDecoderPlugin.cxx
@@ -152,12 +152,11 @@ static void
vorbis_send_comments(DecoderClient &client, InputStream &is,
char **comments)
{
- Tag *tag = vorbis_comments_to_tag(comments);
+ auto tag = vorbis_comments_to_tag(comments);
if (!tag)
return;
client.SubmitTag(is, std::move(*tag));
- delete tag;
}
void
diff --git a/src/lib/xiph/VorbisComments.cxx b/src/lib/xiph/VorbisComments.cxx
index fbec94c90..642fa0033 100644
--- a/src/lib/xiph/VorbisComments.cxx
+++ b/src/lib/xiph/VorbisComments.cxx
@@ -100,12 +100,12 @@ vorbis_comments_scan(char **comments,
}
-Tag *
+std::unique_ptr<Tag>
vorbis_comments_to_tag(char **comments) noexcept
{
TagBuilder tag_builder;
vorbis_comments_scan(comments, add_tag_handler, &tag_builder);
return tag_builder.empty()
? nullptr
- : tag_builder.CommitNew().release();
+ : tag_builder.CommitNew();
}
diff --git a/src/lib/xiph/VorbisComments.hxx b/src/lib/xiph/VorbisComments.hxx
index 46ea2beca..2f3285d13 100644
--- a/src/lib/xiph/VorbisComments.hxx
+++ b/src/lib/xiph/VorbisComments.hxx
@@ -22,6 +22,8 @@
#include "check.h"
+#include <memory>
+
struct ReplayGainInfo;
struct TagHandler;
struct Tag;
@@ -33,7 +35,7 @@ void
vorbis_comments_scan(char **comments,
const TagHandler &handler, void *handler_ctx);
-Tag *
+std::unique_ptr<Tag>
vorbis_comments_to_tag(char **comments) noexcept;
#endif