]> Pileus Git - ~andy/git/commitdiff
shorten_unambiguous_ref(): introduce a new local variable
authorMichael Haggerty <mhagger@alum.mit.edu>
Wed, 8 Jan 2014 14:43:38 +0000 (15:43 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 9 Jan 2014 22:52:44 +0000 (14:52 -0800)
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>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c

diff --git a/refs.c b/refs.c
index 5e5a3824b992132aaac8d86698feebcb773e13c6..7ac3043f88704040bdfb06ee1d811f9af8ba66ef 100644 (file)
--- 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]);
                }
        }