lib/xiph/VorbisComments: return std::unique_ptr<Tag>

This commit is contained in:
Max Kellermann 2017-12-20 15:10:59 +01:00
parent 71f1ec0bc8
commit 43d2fd73ab
3 changed files with 6 additions and 5 deletions

View File

@ -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

View File

@ -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();
}

View File

@ -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