Merge branch 'mm/rebase-i-post-rewrite-exec' into maint
[gitweb.git] / pack-bitmap.c
index 6a818419ca46f8d66adbeb0027da49e6bab1bfa3..2b3ff2379747f7931167d3099c624113bf032536 100644 (file)
@@ -60,7 +60,7 @@ static struct bitmap_index {
        struct ewah_bitmap *blobs;
        struct ewah_bitmap *tags;
 
-       /* Map from SHA1 -> `stored_bitmap` for all the bitmapped comits */
+       /* Map from SHA1 -> `stored_bitmap` for all the bitmapped commits */
        khash_sha1 *bitmaps;
 
        /* Number of bitmapped commits */
@@ -209,14 +209,12 @@ static inline uint8_t read_u8(const unsigned char *buffer, size_t *pos)
        return buffer[(*pos)++];
 }
 
+#define MAX_XOR_OFFSET 160
+
 static int load_bitmap_entries_v1(struct bitmap_index *index)
 {
-       static const size_t MAX_XOR_OFFSET = 160;
-
        uint32_t i;
-       struct stored_bitmap **recent_bitmaps;
-
-       recent_bitmaps = xcalloc(MAX_XOR_OFFSET, sizeof(struct stored_bitmap));
+       struct stored_bitmap *recent_bitmaps[MAX_XOR_OFFSET] = { NULL };
 
        for (i = 0; i < index->entry_count; ++i) {
                int xor_offset, flags;
@@ -252,6 +250,20 @@ static int load_bitmap_entries_v1(struct bitmap_index *index)
        return 0;
 }
 
+static char *pack_bitmap_filename(struct packed_git *p)
+{
+       char *idx_name;
+       int len;
+
+       len = strlen(p->pack_name) - strlen(".pack");
+       idx_name = xmalloc(len + strlen(".bitmap") + 1);
+
+       memcpy(idx_name, p->pack_name, len);
+       memcpy(idx_name + len, ".bitmap", strlen(".bitmap") + 1);
+
+       return idx_name;
+}
+
 static int open_pack_bitmap_1(struct packed_git *packfile)
 {
        int fd;
@@ -322,20 +334,6 @@ static int load_pack_bitmap(void)
        return -1;
 }
 
-char *pack_bitmap_filename(struct packed_git *p)
-{
-       char *idx_name;
-       int len;
-
-       len = strlen(p->pack_name) - strlen(".pack");
-       idx_name = xmalloc(len + strlen(".bitmap") + 1);
-
-       memcpy(idx_name, p->pack_name, len);
-       memcpy(idx_name + len, ".bitmap", strlen(".bitmap") + 1);
-
-       return idx_name;
-}
-
 static int open_pack_bitmap(void)
 {
        struct packed_git *p;
@@ -986,6 +984,8 @@ void test_bitmap_walk(struct rev_info *revs)
                fprintf(stderr, "OK!\n");
        else
                fprintf(stderr, "Mismatch!\n");
+
+       bitmap_free(result);
 }
 
 static int rebuild_bitmap(uint32_t *reposition,