diff options
author | brian m. carlson <sandals@crustytoothpaste.net> | 2019-08-18 20:04:09 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-08-19 15:04:58 -0700 |
commit | 7962e046ff2bfdeab1dad5c969dbd2b9209efe2f (patch) | |
tree | 62258342f20f86ccd17a46d1929d309a0f2ce4b6 | |
parent | blame: remove needless comparison with GIT_SHA1_HEXSZ (diff) | |
download | tgif-7962e046ff2bfdeab1dad5c969dbd2b9209efe2f.tar.xz |
show-index: switch hard-coded constants to the_hash_algo
show-index uses a variety of hard-coded constants to enumerate the
values in pack indices. Switch these hard-coded constants to use
the_hash_algo or GIT_MAX_RAWSZ, as appropriate, and convert one instance
of an unsigned char array to struct object_id.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/show-index.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/builtin/show-index.c b/builtin/show-index.c index a6e678809e..e95b84e8eb 100644 --- a/builtin/show-index.c +++ b/builtin/show-index.c @@ -11,6 +11,7 @@ int cmd_show_index(int argc, const char **argv, const char *prefix) unsigned nr; unsigned int version; static unsigned int top_index[256]; + const unsigned hashsz = the_hash_algo->rawsz; if (argc != 1) usage(show_index_usage); @@ -36,9 +37,9 @@ int cmd_show_index(int argc, const char **argv, const char *prefix) } if (version == 1) { for (i = 0; i < nr; i++) { - unsigned int offset, entry[6]; + unsigned int offset, entry[(GIT_MAX_RAWSZ + 4) / sizeof(unsigned int)]; - if (fread(entry, 4 + 20, 1, stdin) != 1) + if (fread(entry, 4 + hashsz, 1, stdin) != 1) die("unable to read entry %u/%u", i, nr); offset = ntohl(entry[0]); printf("%u %s\n", offset, sha1_to_hex((void *)(entry+1))); @@ -46,13 +47,13 @@ int cmd_show_index(int argc, const char **argv, const char *prefix) } else { unsigned off64_nr = 0; struct { - unsigned char sha1[20]; + struct object_id oid; uint32_t crc; uint32_t off; } *entries; ALLOC_ARRAY(entries, nr); for (i = 0; i < nr; i++) - if (fread(entries[i].sha1, 20, 1, stdin) != 1) + if (fread(entries[i].oid.hash, hashsz, 1, stdin) != 1) die("unable to read sha1 %u/%u", i, nr); for (i = 0; i < nr; i++) if (fread(&entries[i].crc, 4, 1, stdin) != 1) @@ -77,7 +78,7 @@ int cmd_show_index(int argc, const char **argv, const char *prefix) } printf("%" PRIuMAX " %s (%08"PRIx32")\n", (uintmax_t) offset, - sha1_to_hex(entries[i].sha1), + oid_to_hex(&entries[i].oid), ntohl(entries[i].crc)); } free(entries); |