diff options
-rw-r--r-- | oox/source/core/xmlfilterbase.cxx | 6 | ||||
-rw-r--r-- | sax/source/fastparser/fastparser.cxx | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx index 486946cedad6..af0567b5c8e1 100644 --- a/oox/source/core/xmlfilterbase.cxx +++ b/oox/source/core/xmlfilterbase.cxx @@ -171,6 +171,7 @@ struct XmlFilterBaseImpl { typedef RefMap< OUString, Relations > RelationsMap; + Reference<XComponentContext> mxContext; FastParser maFastParser; const OUString maBinSuffix; const OUString maVmlSuffix; @@ -182,6 +183,7 @@ struct XmlFilterBaseImpl }; XmlFilterBaseImpl::XmlFilterBaseImpl( const Reference< XComponentContext >& rxContext ) throw( RuntimeException ) : + mxContext(rxContext), maFastParser( rxContext ), maBinSuffix( ".bin" ), maVmlSuffix( ".vml" ) @@ -272,7 +274,9 @@ OUString XmlFilterBase::getFragmentPathFromFirstTypeFromOfficeDoc( const OUStrin bool XmlFilterBase::importFragment( const rtl::Reference<FragmentHandler>& rxHandler ) { - return importFragment(rxHandler, mxImpl->maFastParser); + FastParser aParser(mxImpl->mxContext); + registerNamespaces(aParser); + return importFragment(rxHandler, aParser); } bool XmlFilterBase::importFragment( const rtl::Reference<FragmentHandler>& rxHandler, FastParser& rParser ) diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx index 82378b1b0275..17e0213e8845 100644 --- a/sax/source/fastparser/fastparser.cxx +++ b/sax/source/fastparser/fastparser.cxx @@ -979,6 +979,9 @@ void FastSaxParserImpl::produce( CallbackType aType ) bool FastSaxParserImpl::hasNamespaceURL( const OUString& rPrefix ) const { + if (maEntities.empty()) + return false; + const Entity& rEntity = getEntity(); if (rEntity.maNamespaceCount.empty()) |