db/upnp: pass char* to visitSong()

Don't use std::string, reduce bloat.
This commit is contained in:
Max Kellermann 2014-01-23 00:06:03 +01:00
parent f703d4fc3e
commit 3ac15ca8d1

View File

@ -350,7 +350,7 @@ UpnpDatabase::SearchSongs(const ContentDirectoryService &server,
} }
static bool static bool
visitSong(const UPnPDirObject &meta, std::string &&path, visitSong(const UPnPDirObject &meta, const char *path,
const DatabaseSelection &selection, const DatabaseSelection &selection,
VisitSong visit_song, Error& error) VisitSong visit_song, Error& error)
{ {
@ -359,7 +359,7 @@ visitSong(const UPnPDirObject &meta, std::string &&path,
LightSong song; LightSong song;
song.directory = nullptr; song.directory = nullptr;
song.uri = path.c_str(); song.uri = path;
song.real_uri = meta.url.c_str(); song.real_uri = meta.url.c_str();
song.tag = &meta.tag; song.tag = &meta.tag;
song.mtime = 0; song.mtime = 0;
@ -414,9 +414,9 @@ UpnpDatabase::SearchSongs(const ContentDirectoryService &server,
// course, 'All Music' is very big. // course, 'All Music' is very big.
// So we return synthetic and ugly paths based on the object id, // So we return synthetic and ugly paths based on the object id,
// which we later have to detect. // which we later have to detect.
if (!visitSong(std::move(dirent), const std::string path = songPath(server.getFriendlyName(),
songPath(server.getFriendlyName(), dirent.m_id);
dirent.m_id), if (!visitSong(std::move(dirent), path.c_str(),
selection, visit_song, selection, visit_song,
error)) error))
return false; return false;
@ -574,7 +574,7 @@ UpnpDatabase::VisitServer(const ContentDirectoryService &server,
case UPnPDirObject::ItemClass::MUSIC: case UPnPDirObject::ItemClass::MUSIC:
if (visit_song) if (visit_song)
return visitSong(std::move(tdirent), return visitSong(std::move(tdirent),
std::string(selection.uri), selection.uri.c_str(),
selection, visit_song, selection, visit_song,
error); error);
break; break;