summaryrefslogtreecommitdiff
path: root/sax/source/fastparser/fastparser.hxx
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2013-10-11 21:46:45 +0100
committerMatúš Kukan <matus.kukan@gmail.com>2013-10-17 21:38:37 +0200
commit2df047bfd1f618329872261ca0600fe232ad8cfe (patch)
tree72cd44f92b0a8c0c39dfb4b9df2b08b92e294288 /sax/source/fastparser/fastparser.hxx
parentc293e73e8f6802fe9733fb69616efb8074acfce7 (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.hxx14
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();