convert "hashcmp() == 0" to hasheq()

This is the partner patch to the previous one, but covering
the "hash" variants instead of "oid".  Note that our
coccinelle rule is slightly more complex to avoid triggering
the call in hasheq().

I didn't bother to add a new rule to convert:

  - hasheq(E1->hash, E2->hash)
  + oideq(E1, E2)

Since these are new functions, there won't be any such
existing callers. And since most of the code is already
using oideq, we're not likely to introduce new ones.

We might still see "!hashcmp(E1->hash, E2->hash)" from topics
in flight. But because our new rule comes after the existing
ones, that should first get converted to "!oidcmp(E1, E2)"
and then to "oideq(E1, E2)".

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2018-08-28 17:22:44 -04:00 committed by Junio C Hamano
parent 4a7e27e957
commit e3ff0683e2
8 changed files with 23 additions and 14 deletions

View File

@ -238,7 +238,7 @@ static int will_fetch(struct ref **head, const unsigned char *sha1)
{
struct ref *rm = *head;
while (rm) {
if (!hashcmp(rm->old_oid.hash, sha1))
if (hasheq(rm->old_oid.hash, sha1))
return 1;
rm = rm->next;
}

View File

@ -1053,12 +1053,12 @@ static inline int oideq(const struct object_id *oid1, const struct object_id *oi
static inline int is_null_sha1(const unsigned char *sha1)
{
return !hashcmp(sha1, null_sha1);
return hasheq(sha1, null_sha1);
}
static inline int is_null_oid(const struct object_id *oid)
{
return !hashcmp(oid->hash, null_sha1);
return hasheq(oid->hash, null_sha1);
}
static inline void hashcpy(unsigned char *sha_dst, const unsigned char *sha_src)
@ -1095,7 +1095,7 @@ static inline void oidread(struct object_id *oid, const unsigned char *hash)
static inline int is_empty_blob_sha1(const unsigned char *sha1)
{
return !hashcmp(sha1, the_hash_algo->empty_blob->hash);
return hasheq(sha1, the_hash_algo->empty_blob->hash);
}
static inline int is_empty_blob_oid(const struct object_id *oid)
@ -1105,7 +1105,7 @@ static inline int is_empty_blob_oid(const struct object_id *oid)
static inline int is_empty_tree_sha1(const unsigned char *sha1)
{
return !hashcmp(sha1, the_hash_algo->empty_tree->hash);
return hasheq(sha1, the_hash_algo->empty_tree->hash);
}
static inline int is_empty_tree_oid(const struct object_id *oid)

View File

@ -114,3 +114,12 @@ expression E1, E2;
@@
- oidcmp(E1, E2) == 0
+ oideq(E1, E2)
@@
identifier f != hasheq;
expression E1, E2;
@@
f(...) {<...
- hashcmp(E1, E2) == 0
+ hasheq(E1, E2)
...>}

View File

@ -483,7 +483,7 @@ static int fetch_object(struct walker *walker, unsigned char *sha1)
list_for_each(pos, head) {
obj_req = list_entry(pos, struct object_request, node);
if (!hashcmp(obj_req->oid.hash, sha1))
if (hasheq(obj_req->oid.hash, sha1))
break;
}
if (obj_req == NULL)

View File

@ -147,7 +147,7 @@ static struct leaf_node *note_tree_find(struct notes_tree *t,
void **p = note_tree_search(t, &tree, &n, key_sha1);
if (GET_PTR_TYPE(*p) == PTR_TYPE_NOTE) {
struct leaf_node *l = (struct leaf_node *) CLR_PTR_TYPE(*p);
if (!hashcmp(key_sha1, l->key_oid.hash))
if (hasheq(key_sha1, l->key_oid.hash))
return l;
}
return NULL;

View File

@ -95,7 +95,7 @@ struct object *lookup_object(struct repository *r, const unsigned char *sha1)
first = i = hash_obj(sha1, r->parsed_objects->obj_hash_size);
while ((obj = r->parsed_objects->obj_hash[i]) != NULL) {
if (!hashcmp(sha1, obj->oid.hash))
if (hasheq(sha1, obj->oid.hash))
break;
i++;
if (i == r->parsed_objects->obj_hash_size)

View File

@ -16,7 +16,7 @@ static uint32_t locate_object_entry_hash(struct packing_data *pdata,
while (pdata->index[i] > 0) {
uint32_t pos = pdata->index[i] - 1;
if (!hashcmp(sha1, pdata->objects[pos].idx.oid.hash)) {
if (hasheq(sha1, pdata->objects[pos].idx.oid.hash)) {
*found = 1;
return i;
}

View File

@ -1015,7 +1015,7 @@ void mark_bad_packed_object(struct packed_git *p, const unsigned char *sha1)
{
unsigned i;
for (i = 0; i < p->num_bad_objects; i++)
if (!hashcmp(sha1, p->bad_object_sha1 + GIT_SHA1_RAWSZ * i))
if (hasheq(sha1, p->bad_object_sha1 + GIT_SHA1_RAWSZ * i))
return;
p->bad_object_sha1 = xrealloc(p->bad_object_sha1,
st_mult(GIT_MAX_RAWSZ,
@ -1031,8 +1031,8 @@ const struct packed_git *has_packed_and_bad(const unsigned char *sha1)
for (p = the_repository->objects->packed_git; p; p = p->next)
for (i = 0; i < p->num_bad_objects; i++)
if (!hashcmp(sha1,
p->bad_object_sha1 + the_hash_algo->rawsz * i))
if (hasheq(sha1,
p->bad_object_sha1 + the_hash_algo->rawsz * i))
return p;
return NULL;
}
@ -1830,8 +1830,8 @@ static int fill_pack_entry(const struct object_id *oid,
if (p->num_bad_objects) {
unsigned i;
for (i = 0; i < p->num_bad_objects; i++)
if (!hashcmp(oid->hash,
p->bad_object_sha1 + the_hash_algo->rawsz * i))
if (hasheq(oid->hash,
p->bad_object_sha1 + the_hash_algo->rawsz * i))
return 0;
}