diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-06-03 10:04:58 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-06-03 15:24:14 +0200 |
commit | 7bf2515fc48ed0d4c436aef298fa9c35e573352b (patch) | |
tree | 1cc0fe34f734fa47ac855cc718eb4e12bf0a954a /sc | |
parent | 0d04315c17a6df9f971237d45d9e5e8af765dd17 (diff) |
tdf#67538 XTypeDetection::queryTypeByDescriptor poor performance, part3
Size the OUStringBuffer in OrcusFormatDetect::detect better at
construction, to avoid re-alloc.
This is specifically fixing the performance of queryTypeByDescriptor
when called from a basic macro on a local test file.
This takes my test macro from 9s to 8s
Change-Id: Id4c2bf386de172b1deed98efece8c1f040c599a5
Reviewed-on: https://gerrit.libreoffice.org/73376
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/orcus/filterdetect.cxx | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sc/source/filter/orcus/filterdetect.cxx b/sc/source/filter/orcus/filterdetect.cxx index a9b064b01fbb..fb142d86b579 100644 --- a/sc/source/filter/orcus/filterdetect.cxx +++ b/sc/source/filter/orcus/filterdetect.cxx @@ -68,11 +68,11 @@ OUString OrcusFormatDetect::detect(css::uno::Sequence<css::beans::PropertyValue> return OUString(); css::uno::Reference<css::io::XInputStream> xInputStream(aMediaDescriptor[utl::MediaDescriptor::PROP_INPUTSTREAM()], css::uno::UNO_QUERY ); + OStringBuffer aContent(xInputStream->available()); static const sal_Int32 nBytes = 4096; css::uno::Sequence<sal_Int8> aSeq(nBytes); bool bEnd = false; - OStringBuffer aContent; while(!bEnd) { sal_Int32 nReadBytes = xInputStream->readBytes(aSeq, nBytes); |