Remove unnecessary delaying of free_refs(ref_map) in builtin-fetch
authorShawn O. Pearce <spearce@spearce.org>
Mon, 3 Mar 2008 02:34:43 +0000 (21:34 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 3 Mar 2008 08:05:45 +0000 (00:05 -0800)
We can free this ref_map as soon as the fetch is complete.  It is not
used for the automatic tag following, nor is it used to disconnect the
transport.  This avoids some confusion about why we are holding onto
these refs while following tags.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-fetch.c

index f8b9542ba6a5a9e68e12347488e2dee38ef10741..1348a0e952fd2ff7ad9b05995c030708e6045723 100644 (file)
@@ -509,7 +509,7 @@ static struct ref *find_non_local_tags(struct transport *transport)
 static int do_fetch(struct transport *transport,
                    struct refspec *refs, int ref_count)
 {
-       struct ref *ref_map, *fetch_map;
+       struct ref *ref_map;
        struct ref *rm;
        int autotags = (transport->remote->fetch_tags == 1);
        if (transport->remote->fetch_tags == 2 && tags != TAGS_UNSET)
@@ -540,8 +540,7 @@ static int do_fetch(struct transport *transport,
                free_refs(ref_map);
                return 1;
        }
-
-       fetch_map = ref_map;
+       free_refs(ref_map);
 
        /* if neither --no-tags nor --tags was specified, do automated tag
         * following ... */
@@ -554,8 +553,6 @@ static int do_fetch(struct transport *transport,
                free_refs(ref_map);
        }
 
-       free_refs(fetch_map);
-
        transport_disconnect(transport);
 
        return 0;