ewah: implement bitmap_or()
We have a function to bitwise-OR an ewah into an uncompressed bitmap, but not to OR two uncompressed bitmaps. Let's add it. Interestingly, we have a public header declaration going back to e1273106f6 (ewah: compressed bitmap implementation, 2013-11-14), but the function was never implemented. That was all OK since there were no users of 'bitmap_or()', but a first caller will be added in a couple of patches. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Dec 8, 2020 at 17:03 UTC
3ed675101aad3dcc948ad0e1d41e55d65e693740
1 file changed
+9
ewah/bitmap.c
+9
@@ -122,6 +122,15 @@ void bitmap_and_not(struct bitmap *self, struct bitmap *other)
122
self->words[i] &= ~other->words[i];
123
}
124
125
+void bitmap_or(struct bitmap *self, const struct bitmap *other)
126
+{
127
+ size_t i;
128
+
129
+ bitmap_grow(self, other->word_alloc);
130
+ for (i = 0; i < other->word_alloc; i++)
131
+ self->words[i] |= other->words[i];
132
+}
133
+
134
void bitmap_or_ewah(struct bitmap *self, struct ewah_bitmap *other)
135
{
136
size_t original_size = self->word_alloc;