summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oox/source/core/xmlfilterbase.cxx6
-rw-r--r--sax/source/fastparser/fastparser.cxx3
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())