summaryrefslogtreecommitdiff
path: root/src/SongUpdate.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-02-07 18:38:16 +0100
committerMax Kellermann <max@duempel.org>2014-02-07 18:44:47 +0100
commit4ab4cf8532c3231ab1aedddb4cf5a6887c14cd78 (patch)
treedc2d1a75069e5253463a760d0c84319e3e9759fa /src/SongUpdate.cxx
parent3341b282b7e7b22f9130f25d7a67d454b6feef8e (diff)
SongUpdate: pass Storage to UpdateFileInArchive()
Diffstat (limited to 'src/SongUpdate.cxx')
-rw-r--r--src/SongUpdate.cxx9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/SongUpdate.cxx b/src/SongUpdate.cxx
index 8990d83c0..9c74618e5 100644
--- a/src/SongUpdate.cxx
+++ b/src/SongUpdate.cxx
@@ -25,7 +25,6 @@
#include "storage/FileInfo.hxx"
#include "util/UriUtil.hxx"
#include "util/Error.hxx"
-#include "Mapper.hxx"
#include "fs/AllocatedPath.hxx"
#include "fs/Traits.hxx"
#include "fs/FileSystem.hxx"
@@ -54,7 +53,7 @@ Song::LoadFile(Storage &storage, const char *path_utf8, Directory &parent)
//in archive ?
bool success = parent.device == DEVICE_INARCHIVE
- ? song->UpdateFileInArchive()
+ ? song->UpdateFileInArchive(storage)
: song->UpdateFile(storage);
if (!success) {
song->Free();
@@ -115,7 +114,7 @@ Song::UpdateFile(Storage &storage)
}
bool
-Song::UpdateFileInArchive()
+Song::UpdateFileInArchive(const Storage &storage)
{
/* check if there's a suffix and a plugin */
@@ -126,7 +125,9 @@ Song::UpdateFileInArchive()
if (!decoder_plugins_supports_suffix(suffix))
return false;
- const auto path_fs = map_song_fs(*this);
+ const auto path_fs = parent->IsRoot()
+ ? storage.MapFS(uri)
+ : storage.MapChildFS(parent->GetPath(), uri);
if (path_fs.IsNull())
return false;