diff options
-rw-r--r-- | src/decoder/plugins/VorbisDecoderPlugin.cxx | 3 | ||||
-rw-r--r-- | src/lib/xiph/VorbisComments.cxx | 4 | ||||
-rw-r--r-- | 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<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 |