TagBuilder: implement the assignment operator

This commit is contained in:
Max Kellermann 2013-12-03 12:08:54 +01:00
parent ba61a92897
commit a5574f9189
2 changed files with 19 additions and 1 deletions

View File

@ -54,6 +54,23 @@ TagBuilder::TagBuilder(Tag &&other)
other.items = nullptr;
}
TagBuilder &
TagBuilder::operator=(const TagBuilder &other)
{
/* copy all attributes */
time = other.time;
has_playlist = other.has_playlist;
items = other.items;
/* increment the tag pool refcounters */
tag_pool_lock.lock();
for (auto i : items)
tag_pool_dup_item(i);
tag_pool_lock.unlock();
return *this;
}
void
TagBuilder::Clear()
{

View File

@ -63,11 +63,12 @@ public:
}
TagBuilder(const TagBuilder &other) = delete;
TagBuilder &operator=(const TagBuilder &other) = delete;
TagBuilder(const Tag &other);
TagBuilder(Tag &&other);
TagBuilder &operator=(const TagBuilder &other);
/**
* Returns true if the tag contains no items. This ignores the "time"
* attribute.