Skip to content

Commit

Permalink
refs: use strncmp() instead of strlen() and memcmp()
Browse files Browse the repository at this point in the history
Simplify ref_entry_cmp_sslice() by using strncmp() to compare the
length-limited key and a NUL-terminated entry.  While we're at it,
retain the const attribute of the input pointers.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
René Scharfe authored and Junio C Hamano committed Jan 16, 2013
1 parent e1980c9 commit c971ddf
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions refs.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,14 +322,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];
}

/*
Expand Down

0 comments on commit c971ddf

Please sign in to comment.