diff --git a/source/GlobalState.cpp b/source/GlobalState.cpp index 47b5a2f..1f130cb 100644 --- a/source/GlobalState.cpp +++ b/source/GlobalState.cpp @@ -48,7 +48,7 @@ struct ConverterOptions: public Converter::Options, public IEventHandler { m_settings(settings) { } void update() { - auto options = m_settings.getMap("gpick.options"); + auto options = m_settings.getOrEmptyMap("gpick.options"); upperCaseHex = options->getString("hex_case", "upper") == "upper"; cssPercentages = options->getBool("css_percentages", false); cssAlphaPercentage = options->getBool("css_alpha_percentage", false); diff --git a/source/dynv/Map.cpp b/source/dynv/Map.cpp index a895951..7d3c26b 100644 --- a/source/dynv/Map.cpp +++ b/source/dynv/Map.cpp @@ -118,9 +118,6 @@ std::vector Map::getColors(const std::string &name) const { std::vector Map::getStrings(const std::string &name) const { return getVector(*this, name); } -Ref Map::getMap(const std::string &name) { - return get(*this, name); -} Ref Map::getOrCreateMap(const std::string &name) { bool valid; std::string fieldName; @@ -141,9 +138,15 @@ Ref Map::getOrCreateMap(const std::string &name) { } return std::get(data); } -const Ref Map::getMap(const std::string &name) const { +Ref Map::getMap(const std::string &name) const { return get(*this, name); } +Ref Map::getOrEmptyMap(const std::string &name) const { + auto result = get(*this, name); + if (!result) + return create(); + return result; +} std::vector Map::getMaps(const std::string &name) { bool valid; std::string fieldName; diff --git a/source/dynv/Map.h b/source/dynv/Map.h index 832405a..d6910a7 100644 --- a/source/dynv/Map.h +++ b/source/dynv/Map.h @@ -56,9 +56,9 @@ struct Map: public common::Ref::Counter { std::vector getInt32s(const std::string &name) const; std::vector getColors(const std::string &name) const; std::vector getStrings(const std::string &name) const; - Ref getMap(const std::string &name); std::vector getMaps(const std::string &name); - const Ref getMap(const std::string &name) const; + Ref getMap(const std::string &name) const; + Ref getOrEmptyMap(const std::string &name) const; std::vector getMaps(const std::string &name) const; Ref getOrCreateMap(const std::string &name); std::vector getOrCreateMaps(const std::string &name);