Avoid potential negative array index access to cached text.
[LibreOffice.git] / external / frozen / cid1532449_use_move_ctor.0
blobcbee9e510b939b864669d596a3dc4cce11072635
1 --- include/frozen/unordered_map.h      2023-06-25 14:47:35.486459668 +0100
2 +++ include/frozen/unordered_map.h      2023-06-25 14:55:58.787858570 +0100
3 @@ -78,14 +78,24 @@
4  public:
5    /* constructors */
6    unordered_map(unordered_map const &) = default;
7 -  constexpr unordered_map(container_type items,
8 +  constexpr unordered_map(container_type&& items,
9 +                          Hash const &hash, KeyEqual const &equal)
10 +      : equal_{equal}
11 +      , items_(std::move(items))
12 +      , tables_{
13 +            bits::make_pmh_tables<storage_size>(
14 +                items_, hash, bits::GetKey{}, default_prg_t{})} {}
15 +  explicit constexpr unordered_map(container_type&& items)
16 +      : unordered_map{items, Hash{}, KeyEqual{}} {}
18 +  constexpr unordered_map(const container_type& items,
19                            Hash const &hash, KeyEqual const &equal)
20        : equal_{equal}
21        , items_{items}
22        , tables_{
23              bits::make_pmh_tables<storage_size>(
24                  items_, hash, bits::GetKey{}, default_prg_t{})} {}
25 -  explicit constexpr unordered_map(container_type items)
26 +  explicit constexpr unordered_map(const container_type& items)
27        : unordered_map{items, Hash{}, KeyEqual{}} {}
29    constexpr unordered_map(std::initializer_list<value_type> items,