From e67afc35b80943480964a39e9f65d9143d49461a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 8 Nov 2014 10:55:59 +0100 Subject: db/upnp/Directory: move checkobjok() to class UPnPDirObject --- src/db/plugins/upnp/Directory.cxx | 12 +----------- src/db/plugins/upnp/Object.hxx | 8 ++++++++ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/db/plugins/upnp/Directory.cxx b/src/db/plugins/upnp/Directory.cxx index c7fd04236..b6c40c69d 100644 --- a/src/db/plugins/upnp/Directory.cxx +++ b/src/db/plugins/upnp/Directory.cxx @@ -197,16 +197,6 @@ protected: } } - bool checkobjok() { - if (m_tobj.id.empty() || m_tobj.parent_id.empty() || - m_tobj.name.empty() || - (m_tobj.type == UPnPDirObject::Type::ITEM && - m_tobj.item_class == UPnPDirObject::ItemClass::UNKNOWN)) - return false; - - return true; - } - virtual void EndElement(const XML_Char *name) { if (tag_type != TAG_NUM_OF_ITEM_TYPES) { @@ -223,7 +213,7 @@ protected: } if ((!strcmp(name, "container") || !strcmp(name, "item")) && - checkobjok()) { + m_tobj.Check()) { tag.Commit(m_tobj.tag); m_dir.objects.emplace_back(std::move(m_tobj)); } diff --git a/src/db/plugins/upnp/Object.hxx b/src/db/plugins/upnp/Object.hxx index 55ceafcfa..6d71c158b 100644 --- a/src/db/plugins/upnp/Object.hxx +++ b/src/db/plugins/upnp/Object.hxx @@ -21,6 +21,7 @@ #define MPD_UPNP_OBJECT_HXX #include "tag/Tag.hxx" +#include "Compiler.h" #include @@ -87,6 +88,13 @@ public: item_class = ItemClass::UNKNOWN; tag.Clear(); } + + gcc_pure + bool Check() const { + return !id.empty() && !parent_id.empty() && !name.empty() && + (type != UPnPDirObject::Type::ITEM || + item_class != UPnPDirObject::ItemClass::UNKNOWN); + } }; #endif /* _UPNPDIRCONTENT_H_X_INCLUDED_ */ -- cgit v1.2.3