diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2013-10-11 21:46:45 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@gmail.com> | 2013-10-17 21:38:37 +0200 |
commit | 2df047bfd1f618329872261ca0600fe232ad8cfe (patch) | |
tree | 72cd44f92b0a8c0c39dfb4b9df2b08b92e294288 /sax/source/fastparser/fastparser.hxx | |
parent | c293e73e8f6802fe9733fb69616efb8074acfce7 (diff) |
fastparser: cache default namespace token for ooxml.
Change-Id: Iee98ec92380d6d0404ab236e062ddbc2378cda43
Diffstat (limited to 'sax/source/fastparser/fastparser.hxx')
-rw-r--r-- | sax/source/fastparser/fastparser.hxx | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sax/source/fastparser/fastparser.hxx b/sax/source/fastparser/fastparser.hxx index 184721251122..d604a8421f19 100644 --- a/sax/source/fastparser/fastparser.hxx +++ b/sax/source/fastparser/fastparser.hxx @@ -51,6 +51,14 @@ typedef ::boost::shared_ptr< NamespaceDefine > NamespaceDefineRef; typedef ::boost::unordered_map< OUString, sal_Int32, OUStringHash, ::std::equal_to< OUString > > NamespaceMap; +struct NameWithToken +{ + OUString msName; + sal_Int32 mnToken; + NameWithToken(const OUString& sName, const sal_Int32& nToken): + msName(sName), mnToken(nToken) {} +}; + // -------------------------------------------------------------------- struct SaxContext @@ -90,7 +98,7 @@ struct Entity : public ParserData // therefore the exception must be saved somewhere. ::com::sun::star::uno::Any maSavedException; - ::std::stack< OUString > maNamespaceStack; + ::std::stack< NameWithToken > maNamespaceStack; /* Context for main thread consuming events. * startElement() stores the data, which characters() and endElement() uses */ @@ -138,7 +146,7 @@ public: void callbackStartElement( const XML_Char* name, const XML_Char** atts ); void callbackEndElement( const XML_Char* name ); void callbackCharacters( const XML_Char* s, int nLen ); - int callbackExternalEntityRef( XML_Parser parser, const XML_Char *openEntityNames, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId); + int callbackExternalEntityRef( XML_Parser parser, const XML_Char *openEntityNames, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId); void callbackEntityDecl(const XML_Char *entityName, int is_parameter_entity, const XML_Char *value, int value_length, const XML_Char *base, const XML_Char *systemId, const XML_Char *publicId, @@ -156,7 +164,7 @@ private: OUString GetNamespaceURL( const OString& rPrefix ) throw (::com::sun::star::xml::sax::SAXException); OUString GetNamespaceURL( const sal_Char*pPrefix, int nPrefixLen ) throw (::com::sun::star::xml::sax::SAXException); sal_Int32 GetNamespaceToken( const OUString& rNamespaceURL ); - sal_Int32 GetTokenWithNamespaceURL( const OUString& rNamespaceURL, const sal_Char* pName, int nNameLen ); + sal_Int32 GetTokenWithContextNamespace( sal_Int32 nNamespaceToken, const sal_Char* pName, int nNameLen ); void DefineNamespace( const OString& rPrefix, const sal_Char* pNamespaceURL ); void pushContext(); |