summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--svl/source/items/globalpool.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/svl/source/items/globalpool.cxx b/svl/source/items/globalpool.cxx
index 313db586a566..32ca159fe7a7 100644
--- a/svl/source/items/globalpool.cxx
+++ b/svl/source/items/globalpool.cxx
@@ -22,6 +22,7 @@
#include <svl/poolitem.hxx>
#include <svl/setitem.hxx>
#include <sal/log.hxx>
+#include <o3tl/sorted_vector.hxx>
#include <unordered_map>
#include <unordered_set>
#include <memory>
@@ -102,7 +103,9 @@ struct ItemInstanceManager
// that specific Item (see other derivations)
struct DefaultItemInstanceManager : public ItemInstanceManager
{
- std::unordered_set<const SfxPoolItem*> maRegistered;
+ // This workload is very read-heavy, and we want to scan the candidates often, so
+ // a vector-based data structure is faster.
+ o3tl::sorted_vector<const SfxPoolItem*> maRegistered;
virtual const SfxPoolItem* find(const SfxPoolItem& rItem) const override
{