diff options
Diffstat (limited to 'third_party/git/ewah/bitmap.c')
-rw-r--r-- | third_party/git/ewah/bitmap.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/third_party/git/ewah/bitmap.c b/third_party/git/ewah/bitmap.c index d8cec585af97..52f1178db4ce 100644 --- a/third_party/git/ewah/bitmap.c +++ b/third_party/git/ewah/bitmap.c @@ -22,26 +22,21 @@ #define EWAH_MASK(x) ((eword_t)1 << (x % BITS_IN_EWORD)) #define EWAH_BLOCK(x) (x / BITS_IN_EWORD) -struct bitmap *bitmap_word_alloc(size_t word_alloc) +struct bitmap *bitmap_new(void) { struct bitmap *bitmap = xmalloc(sizeof(struct bitmap)); - bitmap->words = xcalloc(word_alloc, sizeof(eword_t)); - bitmap->word_alloc = word_alloc; + bitmap->words = xcalloc(32, sizeof(eword_t)); + bitmap->word_alloc = 32; return bitmap; } -struct bitmap *bitmap_new(void) -{ - return bitmap_word_alloc(32); -} - void bitmap_set(struct bitmap *self, size_t pos) { size_t block = EWAH_BLOCK(pos); if (block >= self->word_alloc) { size_t old_size = self->word_alloc; - self->word_alloc = block ? block * 2 : 1; + self->word_alloc = block * 2; REALLOC_ARRAY(self->words, self->word_alloc); memset(self->words + old_size, 0x0, (self->word_alloc - old_size) * sizeof(eword_t)); @@ -50,14 +45,6 @@ void bitmap_set(struct bitmap *self, size_t pos) self->words[block] |= EWAH_MASK(pos); } -void bitmap_unset(struct bitmap *self, size_t pos) -{ - size_t block = EWAH_BLOCK(pos); - - if (block < self->word_alloc) - self->words[block] &= ~EWAH_MASK(pos); -} - int bitmap_get(struct bitmap *self, size_t pos) { size_t block = EWAH_BLOCK(pos); |