[PATCH 1/3] shorten_unambiguous_ref(): introduce a new local variable
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Jan 8, 2014, 14:43 UTC
- Message-ID
- <1389192220-13913-2-git-send-email-mhagger@alum.mit.edu>
- In-Reply-To
- <1389192220-13913-1-git-send-email-mhagger@alum.mit.edu>
When filling the scanf_fmts array, use a separate variable to keep track of the offset to avoid clobbering total_len (which we will need in the next commit).
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> --- refs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/refs.c b/refs.c index 3926136..9530480 100644 --- a/refs.c +++ b/refs.c @@ -3367,6 +3367,7 @@ char *shorten_unambiguous_ref(const char *refname, int strict) /* pre generate scanf formats from ref_rev_parse_rules[] */ if (!nr_rules) { size_t total_len = 0; + size_t offset = 0; /* the rule list is NULL terminated, count them first */ for (nr_rules = 0; ref_rev_parse_rules[nr_rules]; nr_rules++) @@ -3375,12 +3376,11 @@ char *shorten_unambiguous_ref(const char *refname, int strict) scanf_fmts = xmalloc(nr_rules * sizeof(char *) + total_len); - total_len = 0; + offset = 0; for (i = 0; i < nr_rules; i++) { - scanf_fmts[i] = (char *)&scanf_fmts[nr_rules] - + total_len; + scanf_fmts[i] = (char *)&scanf_fmts[nr_rules] + offset; gen_scanf_fmt(scanf_fmts[i], ref_rev_parse_rules[i]); - total_len += strlen(ref_rev_parse_rules[i]); + offset += strlen(ref_rev_parse_rules[i]); } }
-- 1.8.5.2