From e391f4b17b2fdd092b729f0dfec0b84265894e41 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 15 Aug 2012 20:57:45 +0200 Subject: ProxyDatabase: pass "detached" objects to visitors Fixes wrong object URIs with duplicate base names. --- src/Song.cxx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/Song.cxx') diff --git a/src/Song.cxx b/src/Song.cxx index 2ef690fb..eb4c2e53 100644 --- a/src/Song.cxx +++ b/src/Song.cxx @@ -78,6 +78,14 @@ song_replace_uri(struct song *old_song, const char *uri) return new_song; } +struct song * +song_detached_new(const char *uri) +{ + assert(uri != nullptr); + + return song_alloc(uri, &detached_root); +} + struct song * song_dup_detached(const struct song *src) { @@ -86,7 +94,7 @@ song_dup_detached(const struct song *src) struct song *song; if (song_in_database(src)) { char *uri = song_get_uri(src); - song = song_alloc(uri, &detached_root); + song = song_detached_new(uri); g_free(uri); } else song = song_alloc(src->uri, nullptr); -- cgit v1.2.3