Skip to content

Commit 7bc4ec0

Browse files
Kirill Smelkovgitster
authored andcommitted
line-log: convert to using diff_tree_sha1()
Since diff_tree_sha1() can now accept empty trees via NULL sha1, we could just call it without manually reading trees into tree_desc and duplicating code. Cc: Thomas Rast <[email protected]> Signed-off-by: Kirill Smelkov <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 0b707c3 commit 7bc4ec0

File tree

1 file changed

+2
-24
lines changed

1 file changed

+2
-24
lines changed

line-log.c

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -766,16 +766,6 @@ void line_log_init(struct rev_info *rev, const char *prefix, struct string_list
766766
}
767767
}
768768

769-
static void load_tree_desc(struct tree_desc *desc, void **tree,
770-
const unsigned char *sha1)
771-
{
772-
unsigned long size;
773-
*tree = read_object_with_reference(sha1, tree_type, &size, NULL);
774-
if (!*tree)
775-
die("Unable to read tree (%s)", sha1_to_hex(sha1));
776-
init_tree_desc(desc, *tree, size);
777-
}
778-
779769
static int count_parents(struct commit *commit)
780770
{
781771
struct commit_list *parents = commit->parents;
@@ -842,30 +832,18 @@ static void queue_diffs(struct line_log_data *range,
842832
struct diff_queue_struct *queue,
843833
struct commit *commit, struct commit *parent)
844834
{
845-
void *tree1 = NULL, *tree2 = NULL;
846-
struct tree_desc desc1, desc2;
847-
848835
assert(commit);
849-
load_tree_desc(&desc2, &tree2, commit->tree->object.sha1);
850-
if (parent)
851-
load_tree_desc(&desc1, &tree1, parent->tree->object.sha1);
852-
else
853-
init_tree_desc(&desc1, "", 0);
854836

855837
DIFF_QUEUE_CLEAR(&diff_queued_diff);
856-
diff_tree(&desc1, &desc2, "", opt);
838+
diff_tree_sha1(parent ? parent->tree->object.sha1 : NULL,
839+
commit->tree->object.sha1, "", opt);
857840
if (opt->detect_rename) {
858841
filter_diffs_for_paths(range, 1);
859842
if (diff_might_be_rename())
860843
diffcore_std(opt);
861844
filter_diffs_for_paths(range, 0);
862845
}
863846
move_diff_queue(queue, &diff_queued_diff);
864-
865-
if (tree1)
866-
free(tree1);
867-
if (tree2)
868-
free(tree2);
869847
}
870848

871849
static char *get_nth_line(long line, unsigned long *ends, void *data)

0 commit comments

Comments
 (0)