Re: [PATCH] process_{tree,blob}: Remove useless xstrdup calls
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Apr 10, 2009, 22:20 UTC
- Message-ID
- <alpine.LFD.2.00.0904101517520.4583@localhost.localdomain>
- In-Reply-To
- <20090408112854.GA8624@atjola.homenet>
On Wed, 8 Apr 2009, Björn Steinbrink wrote:
Show 5 quoted lines
> > 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
--- builtin-pack-objects.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 9fc3b35..d00eabe 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -1912,6 +1912,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(p->name); + p->name = NULL; } static void show_edge(struct commit *commit)