summaryrefslogtreecommitdiff
path: root/sax
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2014-09-26 10:37:17 +0100
committerMatúš Kukan <matus.kukan@collabora.com>2014-10-23 11:53:17 +0200
commite1c503a2e3309d9f738d7f702a562509899fdb3f (patch)
tree5aeee5c8b7f316de5f82ad6c70ad3fffc9b3dba2 /sax
parentb98b477c084c876a3a65583dbfed5c1f5f8bfe12 (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 'sax')
-rw-r--r--sax/source/fastparser/fastparser.cxx7
-rw-r--r--sax/source/tools/fastattribs.cxx25
2 files changed, 12 insertions, 20 deletions
diff --git a/sax/source/fastparser/fastparser.cxx b/sax/source/fastparser/fastparser.cxx
index fcbb58d70cc8..12429beda9a4 100644
--- a/sax/source/fastparser/fastparser.cxx
+++ b/sax/source/fastparser/fastparser.cxx
@@ -253,7 +253,6 @@ private:
Entity *mpTop; /// std::stack::top() is amazingly slow => cache this.
::std::stack< Entity > maEntities; /// Entity stack for each call of parseStream().
- FastTokenLookup maTokenLookup;
};
} // namespace sax_fastparser
@@ -646,9 +645,9 @@ void FastSaxParserImpl::DefineNamespace( const OString& rPrefix, const sal_Char*
sal_Int32 FastSaxParserImpl::GetToken( const sal_Char* pToken, sal_Int32 nLen /* = 0 */ )
{
- return maTokenLookup.getTokenFromChars( getEntity().mxTokenHandler,
- getEntity().mpTokenHandler,
- pToken, nLen );
+ return FastTokenHandlerBase::getTokenFromChars( getEntity().mxTokenHandler,
+ getEntity().mpTokenHandler,
+ pToken, nLen );
}
sal_Int32 FastSaxParserImpl::GetTokenWithPrefix( const sal_Char*pPrefix, int nPrefixLen, const sal_Char* pName, int nNameLen ) throw (SAXException)
diff --git a/sax/source/tools/fastattribs.cxx b/sax/source/tools/fastattribs.cxx
index 9d03772c8cae..45887b5754aa 100644
--- a/sax/source/tools/fastattribs.cxx
+++ b/sax/source/tools/fastattribs.cxx
@@ -127,9 +127,10 @@ sal_Int32 FastAttributeList::getValueToken( ::sal_Int32 Token ) throw (SAXExcept
{
for (size_t i = 0; i < maAttributeTokens.size(); ++i)
if (maAttributeTokens[i] == Token)
- return maTokenLookup.getTokenFromChars( mxTokenHandler, mpTokenHandler,
- mpChunk + maAttributeValues[ i ],
- AttributeValueLength( i ) );
+ return FastTokenHandlerBase::getTokenFromChars(
+ mxTokenHandler, mpTokenHandler,
+ mpChunk + maAttributeValues[ i ],
+ AttributeValueLength( i ) );
throw SAXException();
}
@@ -138,9 +139,10 @@ sal_Int32 FastAttributeList::getOptionalValueToken( ::sal_Int32 Token, ::sal_Int
{
for (size_t i = 0; i < maAttributeTokens.size(); ++i)
if (maAttributeTokens[i] == Token)
- return maTokenLookup.getTokenFromChars( mxTokenHandler, mpTokenHandler,
- mpChunk + maAttributeValues[ i ],
- AttributeValueLength( i ) );
+ return FastTokenHandlerBase::getTokenFromChars(
+ mxTokenHandler, mpTokenHandler,
+ mpChunk + maAttributeValues[ i ],
+ AttributeValueLength( i ) );
return Default;
}
@@ -229,16 +231,7 @@ sal_Int32 FastAttributeList::AttributeValueLength(sal_Int32 i)
return maAttributeValues[i + 1] - maAttributeValues[i] - 1;
}
-FastTokenLookup::FastTokenLookup()
-{
- maUtf8Buffer.realloc( mnUtf8BufferSize );
-}
-
-/**
- * Avoid doing any memory allocation if we can, instead keep a
- * pet sequence around and do some heavy petting on it.
- */
-sal_Int32 FastTokenLookup::getTokenFromChars(
+sal_Int32 FastTokenHandlerBase::getTokenFromChars(
const css::uno::Reference< css::xml::sax::XFastTokenHandler > &xTokenHandler,
FastTokenHandlerBase *pTokenHandler,
const char *pToken, size_t nLen /* = 0 */ )