summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2020-06-23 12:09:45 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-06-25 15:56:43 +0200
commit150f5cbe108793e427d8106d8cfa60dd6c5c5cb4 (patch)
treeb9891693d0d4e30cdc3ec3f07f495361d4f0b83b
parenttdf#133859 Wizard service: disable 'Next' button if path has only base item (diff)
downloadcore-150f5cbe108793e427d8106d8cfa60dd6c5c5cb4.tar.gz
core-150f5cbe108793e427d8106d8cfa60dd6c5c5cb4.zip
tdf#133699 Slow sorting of a column
reserve inside a loop is a pessimization, since it breaks the logarithmic resizing of the std::vector data area. Also use the std::vector::insert method, instead of std::copy, since the insert method will perform less resizing operations. On my machine, this takes the sort operation from 25s to less than 1s. Change-Id: I30b99d42c56abc5a4ad5c133c7579fac3952173c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96929 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 97965876459d8cfda0b653551708eb14de36e632) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96885 (cherry picked from commit 0638adcb101d870b169a34d980d41ef4fc742a94) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96996
-rw-r--r--sc/source/core/data/column4.cxx3
1 files changed, 1 insertions, 2 deletions
diff --git a/sc/source/core/data/column4.cxx b/sc/source/core/data/column4.cxx
index 329fd93eecdb..9cf56031d101 100644
--- a/sc/source/core/data/column4.cxx
+++ b/sc/source/core/data/column4.cxx
@@ -1220,8 +1220,7 @@ public:
void operator() ( size_t /*nRow*/, SvtBroadcaster* p )
{
SvtBroadcaster::ListenersType& rLis = p->GetAllListeners();
- mrListeners.reserve(mrListeners.size() + rLis.size());
- std::copy(rLis.begin(), rLis.end(), std::back_inserter(mrListeners));
+ mrListeners.insert(mrListeners.end(), rLis.begin(), rLis.end());
}
};