@@ -111,42 +111,42 @@ void BitMap::free(const Allocator& allocator, bm_word_t* map, idx_t size_in_bit
111111}
112112
113113template <class Allocator >
114- void BitMap::resize (const Allocator& allocator, idx_t new_size_in_bits) {
115- bm_word_t * new_map = reallocate (allocator, map (), size (), new_size_in_bits);
114+ void BitMap::resize (const Allocator& allocator, idx_t new_size_in_bits, bool clear ) {
115+ bm_word_t * new_map = reallocate (allocator, map (), size (), new_size_in_bits, clear );
116116
117117 update (new_map, new_size_in_bits);
118118}
119119
120120template <class Allocator >
121- void BitMap::initialize (const Allocator& allocator, idx_t size_in_bits) {
121+ void BitMap::initialize (const Allocator& allocator, idx_t size_in_bits, bool clear ) {
122122 assert (map () == NULL , " precondition" );
123123 assert (size () == 0 , " precondition" );
124124
125- resize (allocator, size_in_bits);
125+ resize (allocator, size_in_bits, clear );
126126}
127127
128128template <class Allocator >
129- void BitMap::reinitialize (const Allocator& allocator, idx_t new_size_in_bits) {
130- // Remove previous bits.
131- resize (allocator, 0 );
129+ void BitMap::reinitialize (const Allocator& allocator, idx_t new_size_in_bits, bool clear ) {
130+ // Remove previous bits - no need to clear
131+ resize (allocator, 0 , false /* clear */ );
132132
133- initialize (allocator, new_size_in_bits);
133+ initialize (allocator, new_size_in_bits, clear );
134134}
135135
136136ResourceBitMap::ResourceBitMap (idx_t size_in_bits)
137137 : BitMap(allocate(ResourceBitMapAllocator(), size_in_bits), size_in_bits) {
138138}
139139
140140void ResourceBitMap::resize (idx_t new_size_in_bits) {
141- BitMap::resize (ResourceBitMapAllocator (), new_size_in_bits);
141+ BitMap::resize (ResourceBitMapAllocator (), new_size_in_bits, true /* clear */ );
142142}
143143
144144void ResourceBitMap::initialize (idx_t size_in_bits) {
145- BitMap::initialize (ResourceBitMapAllocator (), size_in_bits);
145+ BitMap::initialize (ResourceBitMapAllocator (), size_in_bits, true /* clear */ );
146146}
147147
148148void ResourceBitMap::reinitialize (idx_t size_in_bits) {
149- BitMap::reinitialize (ResourceBitMapAllocator (), size_in_bits);
149+ BitMap::reinitialize (ResourceBitMapAllocator (), size_in_bits, true /* clear */ );
150150}
151151
152152ArenaBitMap::ArenaBitMap (Arena* arena, idx_t size_in_bits)
@@ -161,16 +161,16 @@ CHeapBitMap::~CHeapBitMap() {
161161 free (CHeapBitMapAllocator (_flags), map (), size ());
162162}
163163
164- void CHeapBitMap::resize (idx_t new_size_in_bits) {
165- BitMap::resize (CHeapBitMapAllocator (_flags), new_size_in_bits);
164+ void CHeapBitMap::resize (idx_t new_size_in_bits, bool clear ) {
165+ BitMap::resize (CHeapBitMapAllocator (_flags), new_size_in_bits, clear );
166166}
167167
168- void CHeapBitMap::initialize (idx_t size_in_bits) {
169- BitMap::initialize (CHeapBitMapAllocator (_flags), size_in_bits);
168+ void CHeapBitMap::initialize (idx_t size_in_bits, bool clear ) {
169+ BitMap::initialize (CHeapBitMapAllocator (_flags), size_in_bits, clear );
170170}
171171
172- void CHeapBitMap::reinitialize (idx_t size_in_bits) {
173- BitMap::reinitialize (CHeapBitMapAllocator (_flags), size_in_bits);
172+ void CHeapBitMap::reinitialize (idx_t size_in_bits, bool clear ) {
173+ BitMap::reinitialize (CHeapBitMapAllocator (_flags), size_in_bits, clear );
174174}
175175
176176#ifdef ASSERT
0 commit comments