зеркало из https://github.com/microsoft/git.git
Merge branch 'sg/ref-filter-parse-optim' into maint
The code that parses the format parameter of for-each-ref command has seen a micro-optimization. * sg/ref-filter-parse-optim: ref-filter: strip format option after a field name only once while parsing
This commit is contained in:
Коммит
1f253d88fa
22
ref-filter.c
22
ref-filter.c
|
@ -235,7 +235,7 @@ int parse_ref_filter_atom(const char *atom, const char *ep)
|
||||||
{
|
{
|
||||||
const char *sp;
|
const char *sp;
|
||||||
const char *arg;
|
const char *arg;
|
||||||
int i, at;
|
int i, at, atom_len;
|
||||||
|
|
||||||
sp = atom;
|
sp = atom;
|
||||||
if (*sp == '*' && sp < ep)
|
if (*sp == '*' && sp < ep)
|
||||||
|
@ -250,19 +250,19 @@ int parse_ref_filter_atom(const char *atom, const char *ep)
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If the atom name has a colon, strip it and everything after
|
||||||
|
* it off - it specifies the format for this entry, and
|
||||||
|
* shouldn't be used for checking against the valid_atom
|
||||||
|
* table.
|
||||||
|
*/
|
||||||
|
arg = memchr(sp, ':', ep - sp);
|
||||||
|
atom_len = (arg ? arg : ep) - sp;
|
||||||
|
|
||||||
/* Is the atom a valid one? */
|
/* Is the atom a valid one? */
|
||||||
for (i = 0; i < ARRAY_SIZE(valid_atom); i++) {
|
for (i = 0; i < ARRAY_SIZE(valid_atom); i++) {
|
||||||
int len = strlen(valid_atom[i].name);
|
int len = strlen(valid_atom[i].name);
|
||||||
|
if (len == atom_len && !memcmp(valid_atom[i].name, sp, len))
|
||||||
/*
|
|
||||||
* If the atom name has a colon, strip it and everything after
|
|
||||||
* it off - it specifies the format for this entry, and
|
|
||||||
* shouldn't be used for checking against the valid_atom
|
|
||||||
* table.
|
|
||||||
*/
|
|
||||||
arg = memchr(sp, ':', ep - sp);
|
|
||||||
if (len == (arg ? arg : ep) - sp &&
|
|
||||||
!memcmp(valid_atom[i].name, sp, len))
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче