aboutsummaryrefslogtreecommitdiffstats
path: root/src/PlaylistEdit.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-01-15 12:05:44 +0100
committerMax Kellermann <max@duempel.org>2014-01-15 12:05:44 +0100
commit9fb82f9687c10ee8430437a97e263c85f968bddb (patch)
tree16ee0270c77e1a9662ac6ef3ba4e0959d5488f06 /src/PlaylistEdit.cxx
parentdf80deb0708f9abe911dc3533c0d3b310f73650c (diff)
downloadmpd-9fb82f9687c10ee8430437a97e263c85f968bddb.tar.gz
mpd-9fb82f9687c10ee8430437a97e263c85f968bddb.tar.xz
mpd-9fb82f9687c10ee8430437a97e263c85f968bddb.zip
DetachedSong: add method Update()
Don't create an intermediate Song instance when all we want is a DetachedSong.
Diffstat (limited to 'src/PlaylistEdit.cxx')
-rw-r--r--src/PlaylistEdit.cxx8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/PlaylistEdit.cxx b/src/PlaylistEdit.cxx
index 24184d0e4..3f9015765 100644
--- a/src/PlaylistEdit.cxx
+++ b/src/PlaylistEdit.cxx
@@ -61,13 +61,11 @@ PlaylistResult
playlist::AppendFile(PlayerControl &pc,
const char *path_utf8, unsigned *added_id)
{
- Song *song = Song::LoadFile(path_utf8, nullptr);
- if (song == nullptr)
+ DetachedSong song(path_utf8);
+ if (!song.Update())
return PlaylistResult::NO_SUCH_SONG;
- const auto result = AppendSong(pc, DetachedSong(*song), added_id);
- song->Free();
- return result;
+ return AppendSong(pc, std::move(song), added_id);
}
PlaylistResult