diff options
author | Max Kellermann <max@duempel.org> | 2012-08-16 00:04:03 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-08-16 00:04:03 +0200 |
commit | f45616e5f6f7d6aa0fb5ca90a0599eacddf1166b (patch) | |
tree | 5ee81fb82624bca41381005b92f8cd316d32e51b /src | |
parent | e391f4b17b2fdd092b729f0dfec0b84265894e41 (diff) | |
parent | ef5125f8f4ee992c5a8f24d1b93851db5df5c43d (diff) | |
download | mpd-f45616e5f6f7d6aa0fb5ca90a0599eacddf1166b.tar.gz mpd-f45616e5f6f7d6aa0fb5ca90a0599eacddf1166b.tar.xz mpd-f45616e5f6f7d6aa0fb5ca90a0599eacddf1166b.zip |
Merge branch 'v0.17.x'
Diffstat (limited to 'src')
-rw-r--r-- | src/playlist_print.c | 3 | ||||
-rw-r--r-- | src/playlist_song.c | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/playlist_print.c b/src/playlist_print.c index 78f1cb294..204ce3582 100644 --- a/src/playlist_print.c +++ b/src/playlist_print.c @@ -156,6 +156,9 @@ playlist_provider_print(struct client *client, const char *uri, song_print_info(client, song); else song_print_uri(client, song); + + if (!song_in_database(song) || song_is_detached(song)) + song_free(song); } g_free(base_uri); diff --git a/src/playlist_song.c b/src/playlist_song.c index 88ef1059d..29efef2e3 100644 --- a/src/playlist_song.c +++ b/src/playlist_song.c @@ -69,7 +69,6 @@ apply_song_metadata(struct song *dest, const struct song *src) } else { tmp = song_file_new(dest->uri, NULL); merge_song_metadata(tmp, dest, src); - song_free(dest); } if (dest->tag != NULL && dest->tag->time > 0 && @@ -80,11 +79,14 @@ apply_song_metadata(struct song *dest, const struct song *src) (e.g. last track on a CUE file); fix it up here */ tmp->tag->time = dest->tag->time - src->start_ms / 1000; + if (!song_in_database(dest)) + song_free(dest); + return tmp; } static struct song * -playlist_check_load_song(struct song *song, const char *uri, bool secure) +playlist_check_load_song(const struct song *song, const char *uri, bool secure) { struct song *dest; |