diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-10 15:20:18 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-04-12 14:30:31 -0700 |
commit | 213152688c85a0e4d591abc1c10b7c279ffefb99 (patch) | |
tree | 08262e8147511acd423900e70cbf381454578c97 | |
parent | process_{tree,blob}: Remove useless xstrdup calls (diff) | |
download | tgif-213152688c85a0e4d591abc1c10b7c279ffefb99.tar.xz |
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 <gitster@pobox.com>
-rw-r--r-- | 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 84a13c7ccd..a6adc8c271 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) |