From: Linus Torvalds Date: Fri, 10 Apr 2009 22:20:18 +0000 (-0700) Subject: process_{tree,blob}: Remove useless xstrdup calls X-Git-Tag: v1.6.2.3~1^2^2~1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=213152688c85a0e4d591abc1c10b7c279ffefb99;p=git.git process_{tree,blob}: Remove useless xstrdup calls On Wed, 8 Apr 2009, Björn Steinbrink wrote: > > The name of the processed object was duplicated for passing it to > add_object(), but that already calls path_name, which allocates a new > string anyway. So the memory allocated by the xstrdup calls just went > nowhere, leaking memory. Ack, ack. There's another easy 5% or so for the built-in object walker: once we've created the hash from the name, the name isn't interesting any more, and so something trivial like this can help a bit. Does it matter? Probably not on its own. But a few more memory saving tricks and it might all make a difference. Linus Signed-off-by: Junio C Hamano --- diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 84a13c7cc..a6adc8c27 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -1861,6 +1861,8 @@ static void show_object(struct object_array_entry *p) add_preferred_base_object(p->name); add_object_entry(p->item->sha1, p->item->type, p->name, 0); p->item->flags |= OBJECT_ADDED; + free((char *)p->name); + p->name = NULL; } static void show_edge(struct commit *commit)