db/DatabaseSong: make the Storage optional

Some database plugins don't use a Storage (e.g. UPnP), and with this
plugin, DatabaseDetachSong() can crash.
This commit is contained in:
Max Kellermann
2017-02-08 09:47:43 +01:00
parent f689e28958
commit 777e15bd78
9 changed files with 15 additions and 15 deletions

View File

@@ -28,21 +28,21 @@
#include <assert.h>
DetachedSong
DatabaseDetachSong(const Storage &storage, const LightSong &song)
DatabaseDetachSong(const Storage *storage, const LightSong &song)
{
DetachedSong detached(song);
assert(detached.IsInDatabase());
if (!detached.HasRealURI()) {
if (!detached.HasRealURI() && storage != nullptr) {
const auto uri = song.GetURI();
detached.SetRealURI(storage.MapUTF8(uri.c_str()));
detached.SetRealURI(storage->MapUTF8(uri.c_str()));
}
return detached;
}
DetachedSong
DatabaseDetachSong(const Database &db, const Storage &storage, const char *uri)
DatabaseDetachSong(const Database &db, const Storage *storage, const char *uri)
{
const LightSong *tmp = db.GetSong(uri);
assert(tmp != nullptr);