summaryrefslogtreecommitdiff
path: root/configmgr/source
diff options
context:
space:
mode:
Diffstat (limited to 'configmgr/source')
-rw-r--r--configmgr/source/xcsparser.cxx18
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;
}