Optimize prefixcmp()

Certain codepaths (notably "git log --pretty=format...") use
prefixcmp() extensively, with very short prefixes.  In those cases,
calling strlen() is a wasteful operation, so avoid it.

Initial patch by Marco Costalba.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2007-12-29 20:22:14 +01:00 committed by Junio C Hamano
parent 5f7b202a7f
commit 99a6a97b1b

View File

@ -398,7 +398,11 @@ static inline int sane_case(int x, int high)
static inline int prefixcmp(const char *str, const char *prefix)
{
return strncmp(str, prefix, strlen(prefix));
for (; ; str++, prefix++)
if (!*prefix)
return 0;
else if (*str != *prefix)
return (unsigned char)*prefix - (unsigned char)*str;
}
static inline int strtoul_ui(char const *s, int base, unsigned int *result)