Merge branch 'bw/remote-get-ref-states-fix'
authorJunio C Hamano <gitster@pobox.com>
Tue, 1 Dec 2009 20:26:45 +0000 (12:26 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 Dec 2009 20:26:45 +0000 (12:26 -0800)
* bw/remote-get-ref-states-fix:
  get_ref_states: strdup entries and free util in stale list

builtin-remote.c

index 7916626..a501939 100644 (file)
@@ -272,7 +272,9 @@ static int get_ref_states(const struct ref *remote_refs, struct ref_states *stat
                        die("Could not get fetch map for refspec %s",
                                states->remote->fetch_refspec[i]);
 
-       states->new.strdup_strings = states->tracked.strdup_strings = 1;
+       states->new.strdup_strings = 1;
+       states->tracked.strdup_strings = 1;
+       states->stale.strdup_strings = 1;
        for (ref = fetch_map; ref; ref = ref->next) {
                unsigned char sha1[20];
                if (!ref->peer_ref || read_ref(ref->peer_ref->name, sha1))
@@ -768,7 +770,7 @@ static void clear_push_info(void *util, const char *string)
 static void free_remote_ref_states(struct ref_states *states)
 {
        string_list_clear(&states->new, 0);
-       string_list_clear(&states->stale, 0);
+       string_list_clear(&states->stale, 1);
        string_list_clear(&states->tracked, 0);
        string_list_clear(&states->heads, 0);
        string_list_clear_func(&states->push, clear_push_info);