git-tar-tree: no more void pointer arithmetic
[git.git] / builtin-rev-list.c
index 17c04b9..71353eb 100644 (file)
@@ -89,6 +89,14 @@ static void show_commit(struct commit *commit)
                printf("%s%c", pretty_header, hdr_termination);
        }
        fflush(stdout);
+       if (commit->parents) {
+               free_commit_list(commit->parents);
+               commit->parents = NULL;
+       }
+       if (commit->buffer) {
+               free(commit->buffer);
+               commit->buffer = NULL;
+       }
 }
 
 static struct object_list **process_blob(struct blob *blob,
@@ -135,9 +143,9 @@ static struct object_list **process_tree(struct tree *tree,
 
        while (tree_entry(&desc, &entry)) {
                if (S_ISDIR(entry.mode))
-                       p = process_tree(lookup_tree(entry.sha1), p, &me, name);
+                       p = process_tree(lookup_tree(entry.sha1), p, &me, entry.path);
                else
-                       p = process_blob(lookup_blob(entry.sha1), p, &me, name);
+                       p = process_blob(lookup_blob(entry.sha1), p, &me, entry.path);
        }
        free(tree->buffer);
        tree->buffer = NULL;
@@ -158,16 +166,16 @@ static void show_commit_list(struct rev_info *revs)
                const char *name = pending->name;
                if (obj->flags & (UNINTERESTING | SEEN))
                        continue;
-               if (obj->type == tag_type) {
+               if (obj->type == TYPE_TAG) {
                        obj->flags |= SEEN;
                        p = add_object(obj, p, NULL, name);
                        continue;
                }
-               if (obj->type == tree_type) {
+               if (obj->type == TYPE_TREE) {
                        p = process_tree((struct tree *)obj, p, NULL, name);
                        continue;
                }
-               if (obj->type == blob_type) {
+               if (obj->type == TYPE_BLOB) {
                        p = process_blob((struct blob *)obj, p, NULL, name);
                        continue;
                }