http-walker: cleanup more thoroughly
authorTay Ray Chuan <rctay89@gmail.com>
Tue, 2 Mar 2010 10:49:28 +0000 (18:49 +0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 2 Mar 2010 19:10:36 +0000 (11:10 -0800)
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
http-walker.c

index 700bc13112d65dfe8cf89af17522e28cf0d76e26..508e35517c55b8b9f894c46a25e831f1ed3652b9 100644 (file)
@@ -543,6 +543,23 @@ static int fetch_ref(struct walker *walker, struct ref *ref)
 
 static void cleanup(struct walker *walker)
 {
+       struct walker_data *data = walker->data;
+       struct alt_base *alt, *alt_next;
+
+       if (data) {
+               alt = data->alt;
+               while (alt) {
+                       alt_next = alt->next;
+
+                       free(alt->base);
+                       free(alt);
+
+                       alt = alt_next;
+               }
+               free(data);
+               walker->data = NULL;
+       }
+
        http_cleanup();
 }