Skip to content

Commit 8efe643

Browse files
peffgitster
authored andcommitted
diff: simplify color_moved check when flushing
In diff_flush_patch_all_file_pairs(), we set o->emitted_symbols if and only if o->color_moved is true. That causes the lower-level routines to fill up o->emitted_symbols, which we then analyze in order to do the actual colorizing. But in that final step, we do: if (o->emitted_symbols) { if (o->color_moved) { ...actual coloring... } ...clean up of emitted_symbols... } The inner "if" will always trigger, since we set emitted_symbols only when doing color_moved (it is a little confusing that it is set inside the diff_options struct, but that is for convenience of passing it to the lower-level routines; we always clear it at the end of flushing, since 48edf3a (diff: clear emitted_symbols flag after use, 2019-01-24)). Let's simplify the code a bit by just dropping the inner "if" and running its block unconditionally. In theory the current code might be useful if another feature besides color_moved setup and used emitted_symbols, but it would be easy to refactor later to handle that. And in the meantime, this makes further work in this area easier. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 8ee2476 commit 8efe643

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

diff.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6690,20 +6690,17 @@ static void diff_flush_patch_all_file_pairs(struct diff_options *o)
66906690
}
66916691

66926692
if (o->emitted_symbols) {
6693-
if (o->color_moved) {
6694-
struct mem_pool entry_pool;
6695-
struct moved_entry_list *entry_list;
6696-
6697-
mem_pool_init(&entry_pool, 1024 * 1024);
6698-
entry_list = add_lines_to_move_detection(o,
6699-
&entry_pool);
6700-
mark_color_as_moved(o, entry_list);
6701-
if (o->color_moved == COLOR_MOVED_ZEBRA_DIM)
6702-
dim_moved_lines(o);
6703-
6704-
mem_pool_discard(&entry_pool, 0);
6705-
free(entry_list);
6706-
}
6693+
struct mem_pool entry_pool;
6694+
struct moved_entry_list *entry_list;
6695+
6696+
mem_pool_init(&entry_pool, 1024 * 1024);
6697+
entry_list = add_lines_to_move_detection(o, &entry_pool);
6698+
mark_color_as_moved(o, entry_list);
6699+
if (o->color_moved == COLOR_MOVED_ZEBRA_DIM)
6700+
dim_moved_lines(o);
6701+
6702+
mem_pool_discard(&entry_pool, 0);
6703+
free(entry_list);
67076704

67086705
for (i = 0; i < esm.nr; i++)
67096706
emit_diff_symbol_from_struct(o, &esm.buf[i]);

0 commit comments

Comments
 (0)