db/upnp/Object: disallow copying, always move
Reduce bloat.
This commit is contained in:
parent
9a4b572d34
commit
46debfb8b5
|
@ -488,7 +488,7 @@ UpnpDatabase::ReadNode(ContentDirectoryService *server,
|
|||
return false;
|
||||
|
||||
if (dirbuf.objects.size() == 1) {
|
||||
dirent = dirbuf.objects[0];
|
||||
dirent = std::move(dirbuf.objects[0]);
|
||||
} else {
|
||||
error.Format(upnp_domain, "Bad resource");
|
||||
return false;
|
||||
|
@ -542,8 +542,7 @@ UpnpDatabase::Namei(ContentDirectoryService* server,
|
|||
return false;
|
||||
|
||||
// Look for the name in the sub-container list
|
||||
const UPnPDirObject *child =
|
||||
dirbuf.FindObject(vpath[i].c_str());
|
||||
UPnPDirObject *child = dirbuf.FindObject(vpath[i].c_str());
|
||||
if (child == nullptr)
|
||||
break;
|
||||
|
||||
|
@ -558,7 +557,7 @@ UpnpDatabase::Namei(ContentDirectoryService* server,
|
|||
// The last element in the path was found and it's
|
||||
// a container, we're done
|
||||
oobjid = objid;
|
||||
odirent = *child;
|
||||
odirent = std::move(*child);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
@ -568,7 +567,7 @@ UpnpDatabase::Namei(ContentDirectoryService* server,
|
|||
// else it does not exist
|
||||
if (i == vpath.size() - 1) {
|
||||
oobjid = objid;
|
||||
odirent = *child;
|
||||
odirent = std::move(*child);
|
||||
return true;
|
||||
} else {
|
||||
error.Format(db_domain, DB_NOT_FOUND,
|
||||
|
|
|
@ -151,7 +151,7 @@ protected:
|
|||
{
|
||||
if ((!strcmp(name, "container") || !strcmp(name, "item")) &&
|
||||
checkobjok())
|
||||
m_dir.objects.push_back(m_tobj);
|
||||
m_dir.objects.push_back(std::move(m_tobj));
|
||||
|
||||
m_path.pop_back();
|
||||
}
|
||||
|
|
|
@ -37,8 +37,8 @@ public:
|
|||
std::vector<UPnPDirObject> objects;
|
||||
|
||||
gcc_pure
|
||||
const UPnPDirObject *FindObject(const char *name) const {
|
||||
for (const auto &o : objects)
|
||||
UPnPDirObject *FindObject(const char *name) {
|
||||
for (auto &o : objects)
|
||||
if (o.name == name)
|
||||
return &o;
|
||||
|
||||
|
|
|
@ -70,6 +70,10 @@ public:
|
|||
*/
|
||||
int duration;
|
||||
|
||||
UPnPDirObject() = default;
|
||||
UPnPDirObject(UPnPDirObject &&) = default;
|
||||
UPnPDirObject &operator=(UPnPDirObject &&) = default;
|
||||
|
||||
/** Get named property
|
||||
* @param property name (e.g. upnp:artist, upnp:album,
|
||||
* upnp:originalTrackNumber, upnp:genre). Use m_title instead
|
||||
|
|
Loading…
Reference in New Issue