diff options
Diffstat (limited to 'stoc/source/simpleregistry/textualservices.cxx')
-rwxr-xr-x | stoc/source/simpleregistry/textualservices.cxx | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/stoc/source/simpleregistry/textualservices.cxx b/stoc/source/simpleregistry/textualservices.cxx index a3e44d6437bf..44315b689dc7 100755 --- a/stoc/source/simpleregistry/textualservices.cxx +++ b/stoc/source/simpleregistry/textualservices.cxx @@ -194,21 +194,13 @@ Parser::Parser(rtl::OUString const & uri, rtl::Reference< Data > const & data): RTL_CONSTASCII_USTRINGPARAM( ": unexpected item in <component>"))), css::uno::Reference< css::uno::XInterface >()); + case STATE_IMPLEMENTATION_INITIAL: case STATE_IMPLEMENTATION_SERVICE: case STATE_IMPLEMENTATION_SINGLETON: if (res == xmlreader::XmlReader::RESULT_END) { state = STATE_COMPONENT; break; } - if (res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId && - name.equals(RTL_CONSTASCII_STRINGPARAM("singleton"))) - { - handleSingleton(); - state = STATE_SINGLETON; - break; - } - // fall through - case STATE_IMPLEMENTATION_INITIAL: if (state != STATE_IMPLEMENTATION_SINGLETON && res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId && name.equals(RTL_CONSTASCII_STRINGPARAM("service"))) @@ -217,6 +209,14 @@ Parser::Parser(rtl::OUString const & uri, rtl::Reference< Data > const & data): state = STATE_SERVICE; break; } + if (state != STATE_IMPLEMENTATION_INITIAL && + res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId && + name.equals(RTL_CONSTASCII_STRINGPARAM("singleton"))) + { + handleSingleton(); + state = STATE_SINGLETON; + break; + } throw css::registry::InvalidRegistryException( (reader_.getUrl() + rtl::OUString( |