diff options
author | Jeff King <peff@peff.net> | 2019-06-20 07:41:49 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-06-20 17:44:22 (GMT) |
commit | d40abc8e95f75b529feb140178b69a3783c2d108 (patch) | |
tree | d0de753e3ef3e66b033f2b179441e504f71aa4a0 | |
parent | c0566d78aac1d5f8ff90c75f2d936487bb5a8d84 (diff) | |
download | git-d40abc8e95f75b529feb140178b69a3783c2d108.zip git-d40abc8e95f75b529feb140178b69a3783c2d108.tar.gz git-d40abc8e95f75b529feb140178b69a3783c2d108.tar.bz2 |
hashmap: convert sha1hash() to oidhash()
There are no callers left of sha1hash() that do not simply pass the
"hash" member of a "struct object_id". Let's get rid of the outdated
sha1-specific function and provide one that operates on the whole struct
(even though the technique, taking the first few bytes of the hash, will
remain the same).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin/describe.c | 4 | ||||
-rw-r--r-- | decorate.c | 2 | ||||
-rw-r--r-- | diffcore-rename.c | 2 | ||||
-rw-r--r-- | hashmap.h | 8 | ||||
-rw-r--r-- | khash.h | 2 | ||||
-rw-r--r-- | object.c | 2 | ||||
-rw-r--r-- | pack-objects.c | 2 | ||||
-rw-r--r-- | patch-ids.c | 2 |
8 files changed, 13 insertions, 11 deletions
diff --git a/builtin/describe.c b/builtin/describe.c index 0a5cde0..2001542 100644 --- a/builtin/describe.c +++ b/builtin/describe.c @@ -76,7 +76,7 @@ static int commit_name_neq(const void *unused_cmp_data, static inline struct commit_name *find_commit_name(const struct object_id *peeled) { - return hashmap_get_from_hash(&names, sha1hash(peeled->hash), peeled); + return hashmap_get_from_hash(&names, oidhash(peeled), peeled); } static int replace_name(struct commit_name *e, @@ -123,7 +123,7 @@ static void add_to_known_names(const char *path, if (!e) { e = xmalloc(sizeof(struct commit_name)); oidcpy(&e->peeled, peeled); - hashmap_entry_init(e, sha1hash(peeled->hash)); + hashmap_entry_init(e, oidhash(peeled)); hashmap_add(&names, e); e->path = NULL; } @@ -8,7 +8,7 @@ static unsigned int hash_obj(const struct object *obj, unsigned int n) { - return sha1hash(obj->oid.hash) % n; + return oidhash(&obj->oid) % n; } static void *insert_decoration(struct decoration *n, const struct object *base, void *decoration) diff --git a/diffcore-rename.c b/diffcore-rename.c index 07bd34b..1e50d49 100644 --- a/diffcore-rename.c +++ b/diffcore-rename.c @@ -266,7 +266,7 @@ static unsigned int hash_filespec(struct repository *r, hash_object_file(filespec->data, filespec->size, "blob", &filespec->oid); } - return sha1hash(filespec->oid.hash); + return oidhash(&filespec->oid); } static int find_identical_files(struct hashmap *srcs, @@ -1,6 +1,8 @@ #ifndef HASHMAP_H #define HASHMAP_H +#include "hash.h" + /* * Generic implementation of hash-based key-value mappings. * @@ -118,14 +120,14 @@ unsigned int memihash_cont(unsigned int hash_seed, const void *buf, size_t len); * the results will be different on big-endian and little-endian * platforms, so they should not be stored or transferred over the net. */ -static inline unsigned int sha1hash(const unsigned char *sha1) +static inline unsigned int oidhash(const struct object_id *oid) { /* - * Equivalent to 'return *(unsigned int *)sha1;', but safe on + * Equivalent to 'return *(unsigned int *)oid->hash;', but safe on * platforms that don't support unaligned reads. */ unsigned int hash; - memcpy(&hash, sha1, sizeof(hash)); + memcpy(&hash, oid->hash, sizeof(hash)); return hash; } @@ -326,7 +326,7 @@ static const double __ac_HASH_UPPER = 0.77; static inline unsigned int oidhash_by_value(struct object_id oid) { - return sha1hash(oid.hash); + return oidhash(&oid); } static inline int oideq_by_value(struct object_id a, struct object_id b) @@ -61,7 +61,7 @@ int type_from_string_gently(const char *str, ssize_t len, int gentle) */ static unsigned int hash_obj(const struct object_id *oid, unsigned int n) { - return sha1hash(oid->hash) & (n - 1); + return oidhash(oid) & (n - 1); } /* diff --git a/pack-objects.c b/pack-objects.c index 00a5f6e..5256029 100644 --- a/pack-objects.c +++ b/pack-objects.c @@ -11,7 +11,7 @@ static uint32_t locate_object_entry_hash(struct packing_data *pdata, { uint32_t i, mask = (pdata->index_size - 1); - i = sha1hash(oid->hash) & mask; + i = oidhash(oid) & mask; while (pdata->index[i] > 0) { uint32_t pos = pdata->index[i] - 1; diff --git a/patch-ids.c b/patch-ids.c index f70d396..e8c150d 100644 --- a/patch-ids.c +++ b/patch-ids.c @@ -83,7 +83,7 @@ static int init_patch_id_entry(struct patch_id *patch, if (commit_patch_id(commit, &ids->diffopts, &header_only_patch_id, 1, 0)) return -1; - hashmap_entry_init(patch, sha1hash(header_only_patch_id.hash)); + hashmap_entry_init(patch, oidhash(&header_only_patch_id)); return 0; } |