IcyMetaDataParser: return std::unique_ptr<Tag>

This commit is contained in:
Max Kellermann
2017-12-20 15:06:33 +01:00
parent 6b77ee9a5e
commit 99f4bce112
3 changed files with 11 additions and 13 deletions

View File

@@ -20,9 +20,11 @@
#ifndef MPD_ICY_META_DATA_PARSER_HXX
#define MPD_ICY_META_DATA_PARSER_HXX
#include <stddef.h>
#include "tag/Tag.hxx"
struct Tag;
#include <memory>
#include <stddef.h>
class IcyMetaDataParser {
size_t data_size = 0, data_rest;
@@ -30,7 +32,7 @@ class IcyMetaDataParser {
size_t meta_size, meta_position;
char *meta_data;
Tag *tag;
std::unique_ptr<Tag> tag;
public:
~IcyMetaDataParser() noexcept {
@@ -81,10 +83,8 @@ public:
*/
size_t ParseInPlace(void *data, size_t length) noexcept;
Tag *ReadTag() noexcept {
Tag *result = tag;
tag = nullptr;
return result;
std::unique_ptr<Tag> ReadTag() noexcept {
return std::exchange(tag, nullptr);
}
};