Browse Source

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>
maint
Johannes Schindelin 17 years ago committed by Junio C Hamano
parent
commit
99a6a97b1b
  1. 6
      git-compat-util.h

6
git-compat-util.h

@ -398,7 +398,11 @@ static inline int sane_case(int x, int high) @@ -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)

Loading…
Cancel
Save