1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-28 04:49:43 +01:00

graph: reduce duplication in graph_insert_into_new_columns()

I will shortly be making some changes to this function and so am trying
to simplify it. It currently contains some duplicated logic; both
branches the function can take assign the commit's column index into
the `mapping` array and increment `mapping_index`.

Here I change the function so that the only conditional behaviour is
that it appends the commit to `new_columns` if it's not present. All
manipulation of `mapping` now happens on a single code path.

Signed-off-by: James Coglan <jcoglan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
James Coglan 2019-10-15 23:47:50 +00:00 committed by Junio C Hamano
parent 9157a2a032
commit a551fd5efd

20
graph.c
View file

@ -478,23 +478,17 @@ static void graph_insert_into_new_columns(struct git_graph *graph,
int i = graph_find_new_column_by_commit(graph, commit);
/*
* If the commit is already in the new_columns list, we don't need to
* add it. Just update the mapping correctly.
* If the commit is not already in the new_columns array, then add it
* and record it as being in the final column.
*/
if (i >= 0) {
graph->mapping[*mapping_index] = i;
*mapping_index += 2;
return;
if (i < 0) {
i = graph->num_new_columns++;
graph->new_columns[i].commit = commit;
graph->new_columns[i].color = graph_find_commit_color(graph, commit);
}
/*
* This commit isn't already in new_columns. Add it.
*/
graph->new_columns[graph->num_new_columns].commit = commit;
graph->new_columns[graph->num_new_columns].color = graph_find_commit_color(graph, commit);
graph->mapping[*mapping_index] = graph->num_new_columns;
graph->mapping[*mapping_index] = i;
*mapping_index += 2;
graph->num_new_columns++;
}
static void graph_update_width(struct git_graph *graph,