[PATCH 05/23] refs_ref_iterator_begin(): don't check prefixes redundantly
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- May 17, 2017, 12:05 UTC
- Message-ID
- <c9e1d561825a63630a09a2815b9b296c9e4bd1f5.1495014840.git.mhagger@alum.mit.edu>
- In-Reply-To
- <cover.1495014840.git.mhagger@alum.mit.edu>
The backend already takes care of the prefix. By passing the prefix again to `prefix_ref_iterator`, we were forcing that iterator to do redundant prefix comparisons. So set it to the empty string.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> --- refs.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/refs.c b/refs.c index 26d40f9927..f4a485cd8a 100644 --- a/refs.c +++ b/refs.c @@ -1247,7 +1247,13 @@ struct ref_iterator *refs_ref_iterator_begin( struct ref_iterator *iter; iter = refs->be->iterator_begin(refs, prefix, flags); - iter = prefix_ref_iterator_begin(iter, prefix, trim); + + /* + * `iterator_begin()` already takes care of prefix, but we + * might need to do some trimming: + */ + if (trim) + iter = prefix_ref_iterator_begin(iter, "", trim); return iter; }
-- 2.11.0