diff options
Diffstat (limited to 'configmgr2/source/data.cxx')
-rw-r--r-- | configmgr2/source/data.cxx | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/configmgr2/source/data.cxx b/configmgr2/source/data.cxx index 2491d09825ea..7e329ddfcbcf 100644 --- a/configmgr2/source/data.cxx +++ b/configmgr2/source/data.cxx @@ -268,8 +268,11 @@ rtl::Reference< Node > Data::resolvePath( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bad path ")) + path, css::uno::Reference< css::uno::XInterface >()); } + // For backwards compatibility, allow set members to be accessed with + // simple path segments, like group members: + p = p->getMember(seg); if (setElement) { - switch (p->kind()) { + switch (par->kind()) { case Node::KIND_LOCALIZED_PROPERTY: if (templateName.getLength() != 0) { throw css::uno::RuntimeException( @@ -281,7 +284,7 @@ rtl::Reference< Node > Data::resolvePath( break; case Node::KIND_SET: if (templateName.getLength() != 0 && - !dynamic_cast< SetNode * >(p.get())->isValidTemplate( + !dynamic_cast< SetNode * >(par.get())->isValidTemplate( templateName)) { throw css::uno::RuntimeException( @@ -297,7 +300,6 @@ rtl::Reference< Node > Data::resolvePath( path), css::uno::Reference< css::uno::XInterface >()); } - p = p->getMember(seg); if (templateName.getLength() != 0 && p != 0) { rtl::OUString name(p->getTemplateName()); OSL_ASSERT(name.getLength() != 0); @@ -309,10 +311,6 @@ rtl::Reference< Node > Data::resolvePath( css::uno::Reference< css::uno::XInterface >()); } } - } else { - // For backwards compatibility, allow set members to be accessed - // with simple path segments, like group members: - p = p->getMember(seg); } } } |