From: Junio C Hamano Date: Thu, 18 Jan 2007 07:17:28 +0000 (-0800) Subject: Use fixed-size integers for .idx file I/O X-Git-Tag: v1.5.0-rc2~36 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=b18b00a6612a8da12cb14c232a6ab4184cd262dd;p=git.git Use fixed-size integers for .idx file I/O This attempts to finish what Simon started in the previous commit. Signed-off-by: Junio C Hamano --- diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 42dd8c87a..3824ee33a 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -569,7 +569,7 @@ static void write_index_file(void) sha1_to_hex(object_list_sha1), "idx"); struct object_entry **list = sorted_by_sha; struct object_entry **last = list + nr_result; - unsigned int array[256]; + uint32_t array[256]; /* * Write the first-level table (the list is sorted, @@ -587,7 +587,7 @@ static void write_index_file(void) array[i] = htonl(next - sorted_by_sha); list = next; } - sha1write(f, array, 256 * sizeof(int)); + sha1write(f, array, 256 * 4); /* * Write the actual SHA1 entries.. @@ -595,7 +595,7 @@ static void write_index_file(void) list = sorted_by_sha; for (i = 0; i < nr_result; i++) { struct object_entry *entry = *list++; - unsigned int offset = htonl(entry->offset); + uint32_t offset = htonl(entry->offset); sha1write(f, &offset, 4); sha1write(f, entry->sha1, 20); } diff --git a/cache.h b/cache.h index fda3f8ec1..e6e19bdef 100644 --- a/cache.h +++ b/cache.h @@ -351,7 +351,7 @@ struct pack_window { extern struct packed_git { struct packed_git *next; struct pack_window *windows; - unsigned int *index_base; + uint32_t *index_base; off_t index_size; off_t pack_size; int pack_fd; diff --git a/sha1_file.c b/sha1_file.c index 0b7054556..302544094 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -435,7 +435,7 @@ static int check_packed_git_idx(const char *path, unsigned long *idx_size_, void **idx_map_) { void *idx_map; - unsigned int *index; + uint32_t *index; unsigned long idx_size; int nr, i; int fd = open(path, O_RDONLY); @@ -1351,7 +1351,7 @@ int nth_packed_object_sha1(const struct packed_git *p, int n, unsigned long find_pack_entry_one(const unsigned char *sha1, struct packed_git *p) { - unsigned int *level1_ofs = p->index_base; + uint32_t *level1_ofs = p->index_base; int hi = ntohl(level1_ofs[*sha1]); int lo = ((*sha1 == 0x0) ? 0 : ntohl(level1_ofs[*sha1 - 1])); void *index = p->index_base + 256; @@ -1360,7 +1360,7 @@ unsigned long find_pack_entry_one(const unsigned char *sha1, int mi = (lo + hi) / 2; int cmp = hashcmp((unsigned char *)index + (24 * mi) + 4, sha1); if (!cmp) - return ntohl(*((unsigned int *) ((char *) index + (24 * mi)))); + return ntohl(*((uint32_t *)((char *)index + (24 * mi)))); if (cmp > 0) hi = mi; else