summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libcamera/internal/yaml_parser.h7
-rw-r--r--src/libcamera/yaml_parser.cpp11
2 files changed, 8 insertions, 10 deletions
diff --git a/include/libcamera/internal/yaml_parser.h b/include/libcamera/internal/yaml_parser.h
index 6211ff4a..de452844 100644
--- a/include/libcamera/internal/yaml_parser.h
+++ b/include/libcamera/internal/yaml_parser.h
@@ -12,6 +12,7 @@
#include <optional>
#include <stdint.h>
#include <string>
+#include <string_view>
#include <vector>
#include <libcamera/base/class.h>
@@ -206,8 +207,8 @@ public:
const YamlObject &operator[](std::size_t index) const;
- bool contains(const std::string &key) const;
- const YamlObject &operator[](const std::string &key) const;
+ bool contains(std::string_view key) const;
+ const YamlObject &operator[](std::string_view key) const;
private:
LIBCAMERA_DISABLE_COPY_AND_MOVE(YamlObject)
@@ -232,7 +233,7 @@ private:
std::string value_;
Container list_;
- std::map<std::string, YamlObject *> dictionary_;
+ std::map<std::string, YamlObject *, std::less<>> dictionary_;
};
class YamlParser final
diff --git a/src/libcamera/yaml_parser.cpp b/src/libcamera/yaml_parser.cpp
index 4784f2dc..7c0b341a 100644
--- a/src/libcamera/yaml_parser.cpp
+++ b/src/libcamera/yaml_parser.cpp
@@ -481,16 +481,13 @@ const YamlObject &YamlObject::operator[](std::size_t index) const
*
* \return True if an element exists, false otherwise
*/
-bool YamlObject::contains(const std::string &key) const
+bool YamlObject::contains(std::string_view key) const
{
- if (dictionary_.find(std::ref(key)) == dictionary_.end())
- return false;
-
- return true;
+ return dictionary_.find(key) != dictionary_.end();
}
/**
- * \fn YamlObject::operator[](const std::string &key) const
+ * \fn YamlObject::operator[](std::string_view key) const
* \brief Retrieve a member by name from the dictionary
*
* This function retrieve a member of a YamlObject by name. Only YamlObject
@@ -500,7 +497,7 @@ bool YamlObject::contains(const std::string &key) const
*
* \return The YamlObject corresponding to the \a key member
*/
-const YamlObject &YamlObject::operator[](const std::string &key) const
+const YamlObject &YamlObject::operator[](std::string_view key) const
{
if (type_ != Type::Dictionary)
return empty;