From 431a643c7c0fd43734f28c502548aec1d09f7390 Mon Sep 17 00:00:00 2001 From: Bowen Han Date: Sat, 7 Jun 2025 05:24:43 +0200 Subject: [PATCH] Fix reserve and push_back capacity units --- bitvector.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bitvector.hpp b/bitvector.hpp index b6b6b66..80b5d35 100644 --- a/bitvector.hpp +++ b/bitvector.hpp @@ -356,16 +356,16 @@ namespace bowen { if (m_size == m_capacity * WORD_BITS) { - reserve(m_capacity == 0 ? 1 : m_capacity * 2); + reserve(m_capacity ? m_capacity * WORD_BITS * 2 : WORD_BITS); } (*this)[m_size++] = value; } void reserve(size_t new_capacity) { - if (new_capacity > m_capacity) + if (new_capacity > m_capacity * WORD_BITS) { - size_t new_word_count = num_words(new_capacity * WORD_BITS); + size_t new_word_count = num_words(new_capacity); BitType *new_data = m_allocator.allocate(new_word_count); std::copy(m_data, m_data + m_capacity, new_data);