summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2013-01-23 21:19:06 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2013-01-23 21:19:06 -0800
commitf12e49ae877ad0644b9b9939b7cb742da98691d2 (patch)
tree27ba91f64f9e126b4d9da2d5b1ec1c1d36f0118c
parentMerge branch 'jk/suppress-clang-warning' (diff)
parentrefs: use strncmp() instead of strlen() and memcmp() (diff)
downloadtgif-f12e49ae877ad0644b9b9939b7cb742da98691d2.tar.xz
Merge branch 'rs/clarify-entry-cmp-sslice'
* rs/clarify-entry-cmp-sslice: refs: use strncmp() instead of strlen() and memcmp()
-rw-r--r--refs.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/refs.c b/refs.c
index 541fec2065..2962825308 100644
--- a/refs.c
+++ b/refs.c
@@ -333,14 +333,12 @@ struct string_slice {
static int ref_entry_cmp_sslice(const void *key_, const void *ent_)
{
- struct string_slice *key = (struct string_slice *)key_;
- struct ref_entry *ent = *(struct ref_entry **)ent_;
- int entlen = strlen(ent->name);
- int cmplen = key->len < entlen ? key->len : entlen;
- int cmp = memcmp(key->str, ent->name, cmplen);
+ const struct string_slice *key = key_;
+ const struct ref_entry *ent = *(const struct ref_entry * const *)ent_;
+ int cmp = strncmp(key->str, ent->name, key->len);
if (cmp)
return cmp;
- return key->len - entlen;
+ return '\0' - (unsigned char)ent->name[key->len];
}
/*