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 )
 {

Reply via email to