git-fsck-objects: Free tree entries after use
authorSergey Vlasov <vsu@altlinux.ru>
Tue, 15 Nov 2005 16:07:15 +0000 (19:07 +0300)
committerJunio C Hamano <junkio@cox.net>
Tue, 15 Nov 2005 19:42:28 +0000 (11:42 -0800)
The Massif tool of Valgrind revealed that parsed tree entries occupy
more than 60% of memory allocated by git-fsck-objects.  These entries
can be freed immediately after use, which significantly decreases
memory consumption.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>
fsck-objects.c

index 17d0536..c1b279e 100644 (file)
@@ -184,10 +184,17 @@ static int fsck_tree(struct tree *item)
                        default:
                                break;
                        }
+                       free(last->name);
+                       free(last);
                }
 
                last = entry;
        }
+       if (last) {
+               free(last->name);
+               free(last);
+       }
+       item->entries = NULL;
 
        retval = 0;
        if (has_full_path) {