From 43d2fd73abfabd4e6d2476ef2354d4978a5d9332 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 20 Dec 2017 15:10:59 +0100 Subject: [PATCH] lib/xiph/VorbisComments: return std::unique_ptr --- src/decoder/plugins/VorbisDecoderPlugin.cxx | 3 +-- src/lib/xiph/VorbisComments.cxx | 4 ++-- src/lib/xiph/VorbisComments.hxx | 4 +++- 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 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 + 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 vorbis_comments_to_tag(char **comments) noexcept; #endif