external/boost/include/boost/container/small_vector.hpp | 32 ++++++++++++++++ vcl/inc/ImplLayoutRuns.hxx | 11 +---- vcl/source/text/ImplLayoutRuns.cxx | 1 3 files changed, 36 insertions(+), 8 deletions(-)
New commits: commit 42a7b48065977d11bc99ab32dadbfde5f1209438 Author: Noel Grandin <[email protected]> AuthorDate: Tue Oct 25 08:48:22 2022 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Tue Oct 25 10:12:14 2022 +0200 tdf#126788 speed up export to pdf of complex table document We can avoid an allocation in the common case, shaves 10% off the --convert-to pdf time. Change-Id: I9263d3dc8fd6a1d74cd063ba13e2e0160f7a9dd6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141769 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/external/boost/include/boost/container/small_vector.hpp b/external/boost/include/boost/container/small_vector.hpp new file mode 100644 index 000000000000..f10d2e0f3fd9 --- /dev/null +++ b/external/boost/include/boost/container/small_vector.hpp @@ -0,0 +1,32 @@ +/* generated by bin/gen-boost-headers, do not edit! */ +#pragma once +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wpragmas" /* first! for GCC */ +#pragma GCC diagnostic ignored "-Wunknown-warning-option" // second! for Clang 5 +#pragma GCC diagnostic ignored "-Wdelete-non-virtual-dtor" +#pragma GCC diagnostic ignored "-Wdeprecated-builtins" +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#pragma GCC diagnostic ignored "-Wdeprecated-copy" +#pragma GCC diagnostic ignored "-Wdeprecated-copy-dtor" +#pragma GCC diagnostic ignored "-Wextra" +#pragma GCC diagnostic ignored "-Wignored-qualifiers" +#pragma GCC diagnostic ignored "-Wimplicit-fallthrough" +#pragma GCC diagnostic ignored "-Winvalid-constexpr" +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +#pragma GCC diagnostic ignored "-Wmicrosoft-unqualified-friend" +#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" +#pragma GCC diagnostic ignored "-Wnonnull" +#pragma GCC diagnostic ignored "-Wparentheses" +#pragma GCC diagnostic ignored "-Wplacement-new" +#pragma GCC diagnostic ignored "-Wreturn-type" +#pragma GCC diagnostic ignored "-Wshadow" +#pragma GCC diagnostic ignored "-Wstrict-aliasing" +#pragma GCC diagnostic ignored "-Wtautological-constant-out-of-range-compare" +#pragma GCC diagnostic ignored "-Wtype-limits" +#pragma GCC diagnostic ignored "-Wundef" +#pragma GCC diagnostic ignored "-Wunused-local-typedefs" +#pragma GCC diagnostic ignored "-Wunused-macros" +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-variable" +#include_next <boost/container/small_vector.hpp> +#pragma GCC diagnostic pop diff --git a/vcl/inc/ImplLayoutRuns.hxx b/vcl/inc/ImplLayoutRuns.hxx index 30ac642f3779..dec9ca59dcfc 100644 --- a/vcl/inc/ImplLayoutRuns.hxx +++ b/vcl/inc/ImplLayoutRuns.hxx @@ -20,22 +20,17 @@ #pragma once #include <vcl/dllapi.h> - -#include <vector> +#include <boost/container/small_vector.hpp> // used for managing runs e.g. for BiDi, glyph and script fallback class VCL_DLLPUBLIC ImplLayoutRuns { private: int mnRunIndex; - std::vector<int> maRuns; + boost::container::small_vector<int, 8> maRuns; public: - ImplLayoutRuns() - { - mnRunIndex = 0; - maRuns.reserve(8); - } + ImplLayoutRuns() { mnRunIndex = 0; } void Clear() { maRuns.clear(); } void AddPos(int nCharPos, bool bRTL); diff --git a/vcl/source/text/ImplLayoutRuns.cxx b/vcl/source/text/ImplLayoutRuns.cxx index b0f7b5f30f60..3e054f5c4082 100644 --- a/vcl/source/text/ImplLayoutRuns.cxx +++ b/vcl/source/text/ImplLayoutRuns.cxx @@ -18,6 +18,7 @@ */ #include <ImplLayoutRuns.hxx> +#include <algorithm> void ImplLayoutRuns::AddPos( int nCharPos, bool bRTL ) {
