diff options
Diffstat (limited to 'configmgr/source/xcsparser.cxx')
-rw-r--r-- | configmgr/source/xcsparser.cxx | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/configmgr/source/xcsparser.cxx b/configmgr/source/xcsparser.cxx index 411da6ca7915..e7bed9cc02e4 100644 --- a/configmgr/source/xcsparser.cxx +++ b/configmgr/source/xcsparser.cxx @@ -267,24 +267,18 @@ void XcsParser::endElement(xmlreader::XmlReader const & reader) { switch (state_) { case STATE_TEMPLATES: { - NodeMap::iterator i(data_.templates.find(top.name)); - if (i == data_.templates.end()) { - data_.templates.insert( - NodeMap::value_type(top.name, top.node)); - } else { - merge(i->second, top.node); + auto itPair = data_.templates.insert({top.name, top.node}); + if (!itPair.second) { + merge(itPair.first->second, top.node); } } break; case STATE_COMPONENT: { NodeMap & components = data_.getComponents(); - NodeMap::iterator i(components.find(top.name)); - if (i == components.end()) { - components.insert( - NodeMap::value_type(top.name, top.node)); - } else { - merge(i->second, top.node); + auto itPair = components.insert({top.name, top.node}); + if (!itPair.second) { + merge(itPair.first->second, top.node); } state_ = STATE_COMPONENT_DONE; } |