[PATCH v2 08/24] ewah: implement bitmap_or()
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Nov 17, 2020, 21:47 UTC
- Message-ID
- <674e31f98e9ad3a69504125a9aaa6e914383858b.1605649533.git.me@ttaylorr.com>
- In-Reply-To
- <cover.1605649533.git.me@ttaylorr.com>
From: Jeff King <peff@peff.net>
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.
Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Taylor Blau <me@ttaylorr.com> --- ewah/bitmap.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/ewah/bitmap.c b/ewah/bitmap.c index 43a59d7fed..c3f8e7242b 100644 --- a/ewah/bitmap.c +++ b/ewah/bitmap.c @@ -127,6 +127,15 @@ void bitmap_and_not(struct bitmap *self, struct bitmap *other) self->words[i] &= ~other->words[i]; } +void bitmap_or(struct bitmap *self, const struct bitmap *other) +{ + size_t i; + + bitmap_grow(self, other->word_alloc); + for (i = 0; i < other->word_alloc; i++) + self->words[i] |= other->words[i]; +} + void bitmap_or_ewah(struct bitmap *self, struct ewah_bitmap *other) { size_t original_size = self->word_alloc;
-- 2.29.2.312.gabc4d358d8