diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2014-09-26 10:37:17 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2014-10-23 11:53:17 +0200 |
commit | e1c503a2e3309d9f738d7f702a562509899fdb3f (patch) | |
tree | 5aeee5c8b7f316de5f82ad6c70ad3fffc9b3dba2 /include | |
parent | b98b477c084c876a3a65583dbfed5c1f5f8bfe12 (diff) |
fastparser: avoid allocating un-used FastTokenLookup class.
This contained an rtl_Sequence complete with horror internal
allocator, caught red-handed serializing threaded loading to no
good purpose.
Change-Id: I837b2c17e4f70fd6a49bed33ad74a7d79f98f35c
Diffstat (limited to 'include')
-rw-r--r-- | include/sax/fastattribs.hxx | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/include/sax/fastattribs.hxx b/include/sax/fastattribs.hxx index 4724b7ed3de7..6d9c7a4faa5e 100644 --- a/include/sax/fastattribs.hxx +++ b/include/sax/fastattribs.hxx @@ -52,22 +52,24 @@ typedef std::vector< UnknownAttribute > UnknownAttributeList; /// A native C++ interface to tokenisation class SAX_DLLPUBLIC FastTokenHandlerBase { - public: - virtual ~FastTokenHandlerBase(); - virtual sal_Int32 getTokenDirect( const char *pToken, sal_Int32 nLength ) const = 0; -}; - -/// avoid constantly allocating and freeing sequences. -class SAX_DLLPUBLIC FastTokenLookup -{ - static const int mnUtf8BufferSize = 128; - css::uno::Sequence< sal_Int8 > maUtf8Buffer; -public: - FastTokenLookup(); - sal_Int32 getTokenFromChars( - const css::uno::Reference< css::xml::sax::XFastTokenHandler > &mxTokenHandler, - FastTokenHandlerBase *pTokenHandler, - const char *pStr, size_t nLength = 0 ); + public: + virtual ~FastTokenHandlerBase(); + virtual sal_Int32 getTokenDirect( const char *pToken, sal_Int32 nLength ) const = 0; + + /** + * Client method to attempt the use of this interface if possible. + * @xTokenHandler - the UNO handle for the token lookup interface + * @pTokenHandler - a dynamic_cast version of @xTokenHandler to this interface + * @pStr - string buffer to lookup + * @nLength - optional length of chars in that buffer + * + * @return Tokenized form of pStr + */ + static sal_Int32 getTokenFromChars( + const css::uno::Reference< + css::xml::sax::XFastTokenHandler > &xTokenHandler, + FastTokenHandlerBase *pTokenHandler /* can be NULL */, + const char *pStr, size_t nLength = 0 ); }; class SAX_DLLPUBLIC FastAttributeList : public ::cppu::WeakImplHelper1< ::com::sun::star::xml::sax::XFastAttributeList > @@ -112,8 +114,6 @@ private: UnknownAttributeList maUnknownAttributes; ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastTokenHandler > mxTokenHandler; FastTokenHandlerBase *mpTokenHandler; - - FastTokenLookup maTokenLookup; }; } |