process_{tree,blob}: Remove useless xstrdup calls

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.

This reduces the RSS usage for a "rev-list --all --objects" by about 10% on
the gentoo repo (fully packed) as well as linux-2.6.git:

    gentoo:
                    | old           | new
    ----------------|-------------------------------
    RSS             |       1537284 |       1388408
    VSZ             |       1816852 |       1667952
    time elapsed    |       1:49.62 |       1:48.99
    min. page faults|        417178 |        379919

    linux-2.6.git:
                    | old           | new
    ----------------|-------------------------------
    RSS             |        324452 |        292996
    VSZ             |        491792 |        460376
    time elapsed    |       0:14.53 |       0:14.28
    min. page faults|         89360 |         81613

Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Björn Steinbrink 2009-04-08 13:28:54 +02:00 committed by Junio C Hamano
parent 20ff3ec28e
commit de551d472e
2 changed files with 0 additions and 3 deletions

View File

@ -23,7 +23,6 @@ static void process_blob(struct rev_info *revs,
if (obj->flags & (UNINTERESTING | SEEN)) if (obj->flags & (UNINTERESTING | SEEN))
return; return;
obj->flags |= SEEN; obj->flags |= SEEN;
name = xstrdup(name);
add_object(obj, p, path, name); add_object(obj, p, path, name);
} }
@ -78,7 +77,6 @@ static void process_tree(struct rev_info *revs,
if (parse_tree(tree) < 0) if (parse_tree(tree) < 0)
die("bad tree object %s", sha1_to_hex(obj->sha1)); die("bad tree object %s", sha1_to_hex(obj->sha1));
obj->flags |= SEEN; obj->flags |= SEEN;
name = xstrdup(name);
add_object(obj, p, path, name); add_object(obj, p, path, name);
me.up = path; me.up = path;
me.elem = name; me.elem = name;

View File

@ -48,7 +48,6 @@ static void process_tree(struct tree *tree,
obj->flags |= SEEN; obj->flags |= SEEN;
if (parse_tree(tree) < 0) if (parse_tree(tree) < 0)
die("bad tree object %s", sha1_to_hex(obj->sha1)); die("bad tree object %s", sha1_to_hex(obj->sha1));
name = xstrdup(name);
add_object(obj, p, path, name); add_object(obj, p, path, name);
me.up = path; me.up = path;
me.elem = name; me.elem = name;