diff options
| author | Maxime Coste <mawww@kakoune.org> | 2017-10-20 19:00:06 +0800 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2017-11-01 14:05:15 +0800 |
| commit | 7c3bc48627c0bbb97cf4d1ffb8a3ee30a6beec9b (patch) | |
| tree | ea5705d0063b407502fe1859e9d3552223a2db87 | |
| parent | 60e32d73ffb0d98febffec78d4ed38b748fab465 (diff) | |
Fix ConstexprVector::resize
| -rw-r--r-- | src/hash_map.hh | 4 | ||||
| -rw-r--r-- | src/meta.hh | 11 |
2 files changed, 6 insertions, 9 deletions
diff --git a/src/hash_map.hh b/src/hash_map.hh index 94d20498..e0f7a4e2 100644 --- a/src/hash_map.hh +++ b/src/hash_map.hh @@ -35,7 +35,7 @@ struct HashIndex size_t new_size = 4; while (new_size < min_size) new_size *= 2; - m_entries.resize(new_size, {}); + m_entries.resize(new_size); } using ContainerType = Container<Entry, domain>; @@ -44,7 +44,7 @@ struct HashIndex { kak_assert(new_size > m_entries.size()); ContainerType old_entries = std::move(m_entries); - m_entries.resize(new_size, {}); + m_entries.resize(new_size); for (auto& entry : old_entries) { if (entry.index >= 0) diff --git a/src/meta.hh b/src/meta.hh index 110ad3b3..ce29a758 100644 --- a/src/meta.hh +++ b/src/meta.hh @@ -57,17 +57,14 @@ struct ConstexprVector constexpr bool empty() const { return m_size == 0; } constexpr size_t size() const { return m_size; } - constexpr void resize(size_t n, const T& val) + constexpr void resize(size_t n, const T& val = {}) { if (n >= capacity) throw "capacity exceeded"; - if (n > m_size) - { - for (int i = n; i < m_size; ++i) - m_data[i] = val; - } + for (int i = m_size; i < n; ++i) + m_data[i] = val; m_size = n; - kak_assert(this->size() == m_size); + kak_assert(this->size() == m_size); // check for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79520 } constexpr T& operator[](size_t i) { return m_data[i]; } |
