From d7ceadafb3ee0e2c1cd235c9a1479e1df089dd28 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sat, 29 Nov 2014 10:50:23 -0500 Subject: [PATCH] Track: Implement a copy constructor This keeps library size accurate when adding new tracks to the track_db. Signed-off-by: Anna Schumaker --- core/tags/track.cpp | 9 +++++++++ include/core/tags/track.h | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/core/tags/track.cpp b/core/tags/track.cpp index 1d518bca..2a85516d 100644 --- a/core/tags/track.cpp +++ b/core/tags/track.cpp @@ -27,6 +27,15 @@ Track :: Track(Album *album, Artist *artist, Genre *genre, Library *library, _library->inc_size(); } +Track :: Track(const Track &track) + : GenericTag(track), + _album(track._album), _artist(track._artist), _genre(track._genre), + _library(track._library), _count(track._count), _length(track._length), + _track(track._track), _date(track._date), _path(track._path) +{ + _library->inc_size(); +} + Track :: ~Track() { if (_library) diff --git a/include/core/tags/track.h b/include/core/tags/track.h index 9c59659a..9e15f4e1 100644 --- a/include/core/tags/track.h +++ b/include/core/tags/track.h @@ -54,6 +54,13 @@ public: Track(Album *, Artist *, Genre *, Library *, const std::string &, const std::string &, unsigned int, unsigned int); + /** + * Track copy constructor + * + * @param track The Track tag that should be copied. + */ + Track(const Track &); + /** Track destructor */ ~Track();