about summary refs log tree commit diff
path: root/third_party/git/ewah/bitmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/ewah/bitmap.c')
-rw-r--r--third_party/git/ewah/bitmap.c21
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);