db/simple/Song: make "parent" a reference, not a pointer
This commit is contained in:
@@ -167,7 +167,7 @@ Directory::AddSong(SongPtr song) noexcept
|
||||
{
|
||||
assert(holding_db_lock());
|
||||
assert(song != nullptr);
|
||||
assert(song->parent == this);
|
||||
assert(&song->parent == this);
|
||||
|
||||
songs.push_back(*song.release());
|
||||
}
|
||||
@@ -177,7 +177,7 @@ Directory::RemoveSong(Song *song) noexcept
|
||||
{
|
||||
assert(holding_db_lock());
|
||||
assert(song != nullptr);
|
||||
assert(song->parent == this);
|
||||
assert(&song->parent == this);
|
||||
|
||||
songs.erase(songs.iterator_to(*song));
|
||||
}
|
||||
@@ -189,7 +189,7 @@ Directory::FindSong(const char *name_utf8) const noexcept
|
||||
assert(name_utf8 != nullptr);
|
||||
|
||||
for (auto &song : songs) {
|
||||
assert(song.parent == this);
|
||||
assert(&song.parent == this);
|
||||
|
||||
if (song.uri == name_utf8)
|
||||
return &song;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
inline
|
||||
Song::Song(StringView _uri, Directory &_parent) noexcept
|
||||
:parent(&_parent), uri(_uri.data, _uri.size)
|
||||
:parent(_parent), uri(_uri.data, _uri.size)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -56,10 +56,10 @@ Song::NewFile(const char *path, Directory &parent) noexcept
|
||||
std::string
|
||||
Song::GetURI() const noexcept
|
||||
{
|
||||
if (parent->IsRoot())
|
||||
if (parent.IsRoot())
|
||||
return uri;
|
||||
else {
|
||||
const char *path = parent->GetPath();
|
||||
const char *path = parent.GetPath();
|
||||
|
||||
std::string result;
|
||||
result.reserve(strlen(path) + 1 + uri.length());
|
||||
@@ -74,8 +74,8 @@ LightSong
|
||||
Song::Export() const noexcept
|
||||
{
|
||||
LightSong dest(uri.c_str(), tag);
|
||||
if (!parent->IsRoot())
|
||||
dest.directory = parent->GetPath();
|
||||
if (!parent.IsRoot())
|
||||
dest.directory = parent.GetPath();
|
||||
dest.mtime = mtime;
|
||||
dest.start_time = start_time;
|
||||
dest.end_time = end_time;
|
||||
|
||||
@@ -60,10 +60,9 @@ struct Song {
|
||||
Tag tag;
|
||||
|
||||
/**
|
||||
* The #Directory that contains this song. Must be
|
||||
* non-nullptr.
|
||||
* The #Directory that contains this song.
|
||||
*/
|
||||
Directory *const parent;
|
||||
Directory &parent;
|
||||
|
||||
/**
|
||||
* The time stamp of the last file modification. A negative
|
||||
|
||||
Reference in New Issue
Block a user