summaryrefslogtreecommitdiff
path: root/configmgr/source/access.cxx
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2011-12-13 22:16:31 +0100
committerStephan Bergmann <sbergman@redhat.com>2011-12-13 22:16:31 +0100
commitdb4bc6812d69d960a558b89c18f08b17a2e38d27 (patch)
tree15d6547e929635baaffd9a4008a872e9d1c246e6 /configmgr/source/access.cxx
parent39cbce553da1834f78b77f48b2f1be9578d6cc05 (diff)
Unified configmgr::Node::getMember{s,Map} again.
(With the insight that Data::components is RootNode::members.)
Diffstat (limited to 'configmgr/source/access.cxx')
-rw-r--r--configmgr/source/access.cxx41
1 files changed, 19 insertions, 22 deletions
diff --git a/configmgr/source/access.cxx b/configmgr/source/access.cxx
index 7fc239cb9d5c..b6617b416c66 100644
--- a/configmgr/source/access.cxx
+++ b/configmgr/source/access.cxx
@@ -1607,31 +1607,28 @@ void Access::commitChildChanges(
// children); clarify what exactly should happen here for
// directly inserted children
}
- NodeMap * members = getNode()->getMemberMap();
- if (members != 0) {
- NodeMap::iterator j(members->find(i->first));
- if (child.is()) {
- // Inserted:
- if (j != members->end()) {
- childValid = childValid &&
- j->second->getFinalized() == Data::NO_LAYER;
- if (childValid) {
- child->getNode()->setMandatory(
- j->second->getMandatory());
- }
- }
- if (childValid) {
- (*members)[i->first] = child->getNode();
- }
- } else {
- // Removed:
- childValid = childValid && j != members->end() &&
- j->second->getFinalized() == Data::NO_LAYER &&
- j->second->getMandatory() == Data::NO_LAYER;
+ NodeMap & members = getNode()->getMembers();
+ NodeMap::iterator j(members.find(i->first));
+ if (child.is()) {
+ // Inserted:
+ if (j != members.end()) {
+ childValid = childValid &&
+ j->second->getFinalized() == Data::NO_LAYER;
if (childValid) {
- members->erase(j);
+ child->getNode()->setMandatory(j->second->getMandatory());
}
}
+ if (childValid) {
+ members[i->first] = child->getNode();
+ }
+ } else {
+ // Removed:
+ childValid = childValid && j != members.end() &&
+ j->second->getFinalized() == Data::NO_LAYER &&
+ j->second->getMandatory() == Data::NO_LAYER;
+ if (childValid) {
+ members.erase(j);
+ }
}
if (childValid && i->second.directlyModified) {
Path path(getAbsolutePath());