[libcamera-devel] [PATCH] libcamera: yaml_parser: Return nullopt on error

Jacopo Mondi jacopo at jmondi.org
Wed Aug 3 13:03:24 CEST 2022


The YamlParser::getList<>() function returns an std::optional<> to allow
callers to identify cases where parsing the .yaml file failed from cases
where the parsed list is just empty.

The current implementation however returns an empty list in case of
errors, making it impossible for the caller to detect parsing failures.

Fix this by returning std::nullopt in case of errors.

Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
---
 src/libcamera/yaml_parser.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/libcamera/yaml_parser.cpp b/src/libcamera/yaml_parser.cpp
index 84cb57d6de83..c96e99e1317c 100644
--- a/src/libcamera/yaml_parser.cpp
+++ b/src/libcamera/yaml_parser.cpp
@@ -319,7 +319,7 @@ template<typename T,
 std::optional<std::vector<T>> YamlObject::getList() const
 {
 	if (type_ != Type::List)
-		return {};
+		return std::nullopt;
 
 	std::vector<T> values;
 	values.reserve(list_.size());
@@ -327,7 +327,7 @@ std::optional<std::vector<T>> YamlObject::getList() const
 	for (const YamlObject &entry : asList()) {
 		const auto value = entry.get<T>();
 		if (!value)
-			return {};
+			return std::nullopt;
 		values.emplace_back(*value);
 	}
 
-- 
2.37.1



More information about the libcamera-devel mailing list