lib/xiph/VorbisComments: return std::unique_ptr<Tag>
This commit is contained in:
parent
71f1ec0bc8
commit
43d2fd73ab
@ -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
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user