db/LightSong: make "real_uri" a pointer

Reduce overhead.  LightSong can always point to the "real" allocated
string.
This commit is contained in:
Max Kellermann 2014-02-04 00:38:52 +01:00
parent b9c248e7e7
commit db69ceade6
3 changed files with 4 additions and 3 deletions

View File

@ -25,7 +25,7 @@
DetachedSong::DetachedSong(const LightSong &other)
:uri(other.GetURI().c_str()),
real_uri(other.real_uri),
real_uri(other.real_uri != nullptr ? other.real_uri : ""),
tag(*other.tag),
mtime(other.mtime),
start_ms(other.start_ms), end_ms(other.end_ms) {}

View File

@ -48,13 +48,13 @@ struct LightSong {
/**
* The "real" URI, the one to be used for opening the
* resource. If this attribute is empty, then #uri (and
* resource. If this attribute is nullptr, then #uri (and
* #directory) shall be used.
*
* This attribute is used for songs from the database which
* have a relative URI.
*/
std::string real_uri;
const char *real_uri;
/**
* Must not be nullptr.

View File

@ -102,6 +102,7 @@ Song::Export() const
dest.directory = parent->IsRoot()
? nullptr : parent->GetPath();
dest.uri = uri;
dest.real_uri = nullptr;
dest.tag = &tag;
dest.mtime = mtime;
dest.start_ms = start_ms;