aboutsummaryrefslogtreecommitdiffstats
path: root/src/db
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-01-18 15:44:41 +0100
committerMax Kellermann <max@duempel.org>2014-01-18 15:44:41 +0100
commit5409e43fb557ca3275675c9a7e1968590dbb0276 (patch)
treee5b9fc26b91e52b6520e137d8c2207924ee0f4d7 /src/db
parentf33f891c54b22233083e82e3743af5ca74a85128 (diff)
downloadmpd-5409e43fb557ca3275675c9a7e1968590dbb0276.tar.gz
mpd-5409e43fb557ca3275675c9a7e1968590dbb0276.tar.xz
mpd-5409e43fb557ca3275675c9a7e1968590dbb0276.zip
db/upnp: cache m_path.back()
Diffstat (limited to 'src/db')
-rw-r--r--src/db/upnp/Device.cxx25
-rw-r--r--src/db/upnp/Directory.cxx9
2 files changed, 18 insertions, 16 deletions
diff --git a/src/db/upnp/Device.cxx b/src/db/upnp/Device.cxx
index 413d6ac99..e668f839a 100644
--- a/src/db/upnp/Device.cxx
+++ b/src/db/upnp/Device.cxx
@@ -55,43 +55,44 @@ protected:
}
virtual void CharacterData(const XML_Char *s, int len) {
+ const auto &current = m_path.back();
std::string str = trimstring(s, len);
- switch (m_path.back()[0]) {
+ switch (current[0]) {
case 'c':
- if (!m_path.back().compare("controlURL"))
+ if (!current.compare("controlURL"))
m_tservice.controlURL = std::move(str);
break;
case 'd':
- if (!m_path.back().compare("deviceType"))
+ if (!current.compare("deviceType"))
m_device.deviceType = std::move(str);
break;
case 'e':
- if (!m_path.back().compare("eventSubURL"))
+ if (!current.compare("eventSubURL"))
m_tservice.eventSubURL = std::move(str);
break;
case 'f':
- if (!m_path.back().compare("friendlyName"))
+ if (!current.compare("friendlyName"))
m_device.friendlyName = std::move(str);
break;
case 'm':
- if (!m_path.back().compare("manufacturer"))
+ if (!current.compare("manufacturer"))
m_device.manufacturer = std::move(str);
- else if (!m_path.back().compare("modelName"))
+ else if (!current.compare("modelName"))
m_device.modelName = std::move(str);
break;
case 's':
- if (!m_path.back().compare("serviceType"))
+ if (!current.compare("serviceType"))
m_tservice.serviceType = std::move(str);
- else if (!m_path.back().compare("serviceId"))
+ else if (!current.compare("serviceId"))
m_tservice.serviceId = std::move(str);
case 'S':
- if (!m_path.back().compare("SCPDURL"))
+ if (!current.compare("SCPDURL"))
m_tservice.SCPDURL = std::move(str);
break;
case 'U':
- if (!m_path.back().compare("UDN"))
+ if (!current.compare("UDN"))
m_device.UDN = std::move(str);
- else if (!m_path.back().compare("URLBase"))
+ else if (!current.compare("URLBase"))
m_device.URLBase = std::move(str);
break;
}
diff --git a/src/db/upnp/Directory.cxx b/src/db/upnp/Directory.cxx
index b9c92dabd..ce0a86fda 100644
--- a/src/db/upnp/Directory.cxx
+++ b/src/db/upnp/Directory.cxx
@@ -156,10 +156,11 @@ protected:
virtual void CharacterData(const XML_Char *s, int len)
{
+ const auto &current = m_path.back();
std::string str = trimstring(s, len);
TagType type = tag_table_lookup(upnp_tags,
- m_path.back().c_str());
+ current.c_str());
if (type != TAG_NUM_OF_ITEM_TYPES) {
tag.AddItem(type, str.c_str());
@@ -169,14 +170,14 @@ protected:
return;
}
- switch (m_path.back()[0]) {
+ switch (current[0]) {
case 'r':
- if (!m_path.back().compare("res")) {
+ if (!current.compare("res")) {
m_tobj.url = std::move(str);
}
break;
case 'u':
- if (m_path.back() == "upnp:class") {
+ if (current == "upnp:class") {
m_tobj.item_class = ParseItemClass(str.c_str());
break;
}