diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-10-06 14:53:12 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-10-06 14:53:12 -0700 |
commit | 51d517b9bbb58904a3f9ded068d7f111620a4db4 (patch) | |
tree | a06b6fe76ea045fba3c49db276ee699fb3196316 | |
parent | f0798e6cdbf99515391242e20f8df495a14e9c22 (diff) | |
parent | e94ce1394e17e1b91b943b8d41131b6aadb96b88 (diff) | |
download | git-51d517b9bbb58904a3f9ded068d7f111620a4db4.tar.gz git-51d517b9bbb58904a3f9ded068d7f111620a4db4.tar.xz |
Merge branch 'sg/ref-filter-parse-optim'
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
-rw-r--r-- | ref-filter.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/ref-filter.c b/ref-filter.c index 9adbb8af3..9a8f55e45 100644 --- a/ref-filter.c +++ b/ref-filter.c @@ -235,7 +235,7 @@ int parse_ref_filter_atom(const char *atom, const char *ep) { const char *sp; const char *arg; - int i, at; + int i, at, atom_len; sp = atom; if (*sp == '*' && sp < ep) @@ -250,19 +250,19 @@ int parse_ref_filter_atom(const char *atom, const char *ep) 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? */ for (i = 0; i < ARRAY_SIZE(valid_atom); i++) { int len = strlen(valid_atom[i].name); - - /* - * 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)) + if (len == atom_len && !memcmp(valid_atom[i].name, sp, len)) break; } |