diff options
author | Oliver Bolte <obo@openoffice.org> | 2009-02-17 12:51:38 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2009-02-17 12:51:38 +0000 |
commit | 82ebfbd6668ae7596e8f2f1c2f9ee6e1c1bd3efd (patch) | |
tree | e938605fbf99219430f83a3d1c1a0948c7205931 | |
parent | 871f01a0ada5b084f0047401500ba15ba8c1be64 (diff) |
CWS-TOOLING: integrate CWS sb105
2009-02-02 15:33:54 +0100 sb r267272 : #i98602# childNode apparently can legitimately be null in handle(ValueNode const &); this was asserted---but otherwise handled gracefully---before r262819
-rw-r--r-- | configmgr/source/tree/updatehelper.cxx | 54 |
1 files changed, 27 insertions, 27 deletions
diff --git a/configmgr/source/tree/updatehelper.cxx b/configmgr/source/tree/updatehelper.cxx index 3cc8112314..17a60be4e2 100644 --- a/configmgr/source/tree/updatehelper.cxx +++ b/configmgr/source/tree/updatehelper.cxx @@ -450,36 +450,36 @@ void ApplyUpdate::handle(RemoveNode& _rChange) virtual void handle(ValueNode const& _aNewNode) { sharable::Node * childNode = m_cacheNode->getSubnode(getNodeName(_aNewNode)); - - OSL_ENSURE(childNode != 0, "TreeDifferenceBuilder: could not find expected node !"); - - sharable::ValueNode * valueNode = childNode->valueData(); - - OSL_ENSURE(valueNode != 0, "TreeDifferenceBuilder: node must be a value node!"); - - // if the values differ add a new change - if (_aNewNode.getValue() != valueNode->getValue()) + if (childNode != 0) { - bool bNewDefault = _aNewNode.isDefault(); - bool bOldDefault = valueNode->info.isDefault(); - - ValueChange::Mode eMode; - if (bNewDefault) - if (bOldDefault) - eMode = ValueChange::changeDefault; + sharable::ValueNode * valueNode = childNode->valueData(); + + OSL_ENSURE(valueNode != 0, "TreeDifferenceBuilder: node must be a value node!"); + + // if the values differ add a new change + if (_aNewNode.getValue() != valueNode->getValue()) + { + bool bNewDefault = _aNewNode.isDefault(); + bool bOldDefault = valueNode->info.isDefault(); + + ValueChange::Mode eMode; + if (bNewDefault) + if (bOldDefault) + eMode = ValueChange::changeDefault; + else + eMode = ValueChange::setToDefault; else - eMode = ValueChange::setToDefault; - else - if (bOldDefault) - eMode = ValueChange::wasDefault; - else - eMode = ValueChange::changeValue; + if (bOldDefault) + eMode = ValueChange::wasDefault; + else + eMode = ValueChange::changeValue; - std::auto_ptr<Change> pChange( - new ValueChange(_aNewNode.getName(), _aNewNode.getAttributes(), eMode, - _aNewNode.getValue(), valueNode->getValue()) ); - - m_rChangeList.addChange(pChange); + std::auto_ptr<Change> pChange( + new ValueChange(_aNewNode.getName(), _aNewNode.getAttributes(), eMode, + _aNewNode.getValue(), valueNode->getValue()) ); + + m_rChangeList.addChange(pChange); + } } } virtual void handle(ISubtree const& _aNewNode) |