aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/UpnpDatabasePlugin.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/UpnpDatabasePlugin.cxx')
-rw-r--r--src/db/UpnpDatabasePlugin.cxx13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/db/UpnpDatabasePlugin.cxx b/src/db/UpnpDatabasePlugin.cxx
index 7e2bfb2f6..3b9615295 100644
--- a/src/db/UpnpDatabasePlugin.cxx
+++ b/src/db/UpnpDatabasePlugin.cxx
@@ -105,7 +105,7 @@ protected:
private:
bool VisitServer(ContentDirectoryService &server,
- const std::vector<std::string> &vpath,
+ const std::list<std::string> &vpath,
const DatabaseSelection &selection,
VisitDirectory visit_directory,
VisitSong visit_song,
@@ -129,7 +129,7 @@ private:
Error &error) const;
bool Namei(ContentDirectoryService &server,
- const std::vector<std::string> &vpath,
+ const std::list<std::string> &vpath,
UPnPDirObject &dirent,
Error &error) const;
@@ -229,7 +229,8 @@ UpnpDatabase::GetSong(const char *uri, Error &error) const
if (!m_superdir->getServer(vpath.front().c_str(), server, error))
return nullptr;
- vpath.erase(vpath.begin());
+ vpath.pop_front();
+
UPnPDirObject dirent;
if (vpath.front() != rootid) {
if (!Namei(server, vpath, dirent, error))
@@ -463,7 +464,7 @@ UpnpDatabase::BuildPath(ContentDirectoryService &server,
// Take server and internal title pathname and return objid and metadata.
bool
UpnpDatabase::Namei(ContentDirectoryService &server,
- const std::vector<std::string> &vpath,
+ const std::list<std::string> &vpath,
UPnPDirObject &odirent,
Error &error) const
{
@@ -528,7 +529,7 @@ UpnpDatabase::Namei(ContentDirectoryService &server,
// really just one path parameter.
bool
UpnpDatabase::VisitServer(ContentDirectoryService &server,
- const std::vector<std::string> &vpath,
+ const std::list<std::string> &vpath,
const DatabaseSelection &selection,
VisitDirectory visit_directory,
VisitSong visit_song,
@@ -706,7 +707,7 @@ UpnpDatabase::Visit(const DatabaseSelection &selection,
// We do have a path: the first element selects the server
std::string servername(std::move(vpath.front()));
- vpath.erase(vpath.begin());
+ vpath.pop_front();
ContentDirectoryService server;
if (!m_superdir->getServer(servername.c_str(), server, error))