diff options
-rw-r--r-- | src/cam/options.cpp | 24 | ||||
-rw-r--r-- | src/cam/options.h | 4 |
2 files changed, 14 insertions, 14 deletions
diff --git a/src/cam/options.cpp b/src/cam/options.cpp index 481ac189..6e0d802c 100644 --- a/src/cam/options.cpp +++ b/src/cam/options.cpp @@ -638,27 +638,27 @@ std::string OptionValue::toString() const /** * \brief Retrieve the value as a key-value list - * \return The option value as a KeyValueParser::Options, or an empty list if - * the value type isn't ValueType::ValueKeyValue + * + * The behaviour is undefined if the value type isn't ValueType::ValueKeyValue. + * + * \return The option value as a KeyValueParser::Options */ -KeyValueParser::Options OptionValue::toKeyValues() const +const KeyValueParser::Options &OptionValue::toKeyValues() const { - if (type_ != ValueKeyValue) - return KeyValueParser::Options(); - + assert(type_ == ValueKeyValue); return keyValues_; } /** * \brief Retrieve the value as an array - * \return The option value as a std::vector of OptionValue, or an empty vector - * if the value type isn't ValueType::ValueArray + * + * The behaviour is undefined if the value type isn't ValueType::ValueArray. + * + * \return The option value as a std::vector of OptionValue */ -std::vector<OptionValue> OptionValue::toArray() const +const std::vector<OptionValue> &OptionValue::toArray() const { - if (type_ != ValueArray) - return std::vector<OptionValue>{}; - + assert(type_ == ValueArray); return array_; } diff --git a/src/cam/options.h b/src/cam/options.h index 83c409ae..0047b4f2 100644 --- a/src/cam/options.h +++ b/src/cam/options.h @@ -142,8 +142,8 @@ public: int toInteger() const; std::string toString() const; - KeyValueParser::Options toKeyValues() const; - std::vector<OptionValue> toArray() const; + const KeyValueParser::Options &toKeyValues() const; + const std::vector<OptionValue> &toArray() const; const OptionsParser::Options &children() const; |