X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=builtin-rev-list.c;h=94f520b908402ffd6468cc15f894d7a9d56ebbf7;hb=3a7c352bd0ecac4b4c96c0995d61de9ef8d814f9;hp=f11dbd65c14a196f92c98d5c16be0cda74a1edf1;hpb=a861b58bbf4bced62a0b8faa8deba107edb0bffd;p=git.git diff --git a/builtin-rev-list.c b/builtin-rev-list.c index f11dbd65..94f520b9 100644 --- a/builtin-rev-list.c +++ b/builtin-rev-list.c @@ -103,6 +103,7 @@ static struct object_list **process_blob(struct blob *blob, if (obj->flags & (UNINTERESTING | SEEN)) return p; obj->flags |= SEEN; + name = strdup(name); return add_object(obj, p, path, name); } @@ -122,6 +123,7 @@ static struct object_list **process_tree(struct tree *tree, if (parse_tree(tree) < 0) die("bad tree object %s", sha1_to_hex(obj->sha1)); obj->flags |= SEEN; + name = strdup(name); p = add_object(obj, p, path, name); me.up = path; me.elem = name; @@ -131,12 +133,14 @@ static struct object_list **process_tree(struct tree *tree, while (entry) { struct tree_entry_list *next = entry->next; if (entry->directory) - p = process_tree(entry->item.tree, p, &me, entry->name); + p = process_tree(lookup_tree(entry->sha1), p, &me, entry->name); else - p = process_blob(entry->item.blob, p, &me, entry->name); + p = process_blob(lookup_blob(entry->sha1), p, &me, entry->name); free(entry); entry = next; } + free(tree->buffer); + tree->buffer = NULL; return p; }