diff options
-rw-r--r-- | src/tag/Builder.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/tag/Builder.cxx b/src/tag/Builder.cxx index 76b404499..e5e380399 100644 --- a/src/tag/Builder.cxx +++ b/src/tag/Builder.cxx @@ -78,11 +78,14 @@ TagBuilder::operator=(const TagBuilder &other) noexcept TagBuilder & TagBuilder::operator=(TagBuilder &&other) noexcept { + using std::swap; + duration = other.duration; has_playlist = other.has_playlist; - RemoveAll(); - items = std::move(other.items); + /* swap the two TagItem lists so we don't need to touch the + tag pool just yet */ + swap(items, other.items); return *this; } |