X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=refs.c;h=29628253087fb0d54a8f7a45938624527f35d4a8;hb=30784198b766b19a639c199e4365f2a805fc08c6;hp=541fec20658082f13ef4b73b621787512b300ba6;hpb=c1640aa5d3696d8966b06689ac8746918453081e;p=git.git diff --git a/refs.c b/refs.c index 541fec206..296282530 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]; } /*