diff --git a/include/mapnik/ptree_helpers.hpp b/include/mapnik/ptree_helpers.hpp index 51708d0f7..3156369f2 100644 --- a/include/mapnik/ptree_helpers.hpp +++ b/include/mapnik/ptree_helpers.hpp @@ -437,6 +437,12 @@ inline boost::optional get_optional(boost::property_tree::ptree const& no return result; } +static inline bool has_child(boost::property_tree::ptree const& node, std::string const& name) +{ + boost::optional str = node.get_optional(name); + return str; +} + } // end of namespace mapnik #endif // MAPNIK_PTREE_HELPERS_HPP diff --git a/src/load_map.cpp b/src/load_map.cpp index a222e12de..ddb076e80 100644 --- a/src/load_map.cpp +++ b/src/load_map.cpp @@ -841,16 +841,12 @@ void map_parser::parse_rule( feature_type_style & style, ptree const & r ) rule.set_filter(parse_expr(*filter_expr)); } - optional else_filter = - get_opt_child(r, "ElseFilter"); - if (else_filter) + if (has_child(r, "ElseFilter")) { rule.set_else(true); } - optional also_filter = - get_opt_child(r, "AlsoFilter"); - if (also_filter) + if (has_child(r, "AlsoFilter")) { rule.set_also(true); }