Skip to content

Commit

Permalink
graph: reduce duplication in graph_insert_into_new_columns()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
jcoglan authored and gitster committed Oct 16, 2019
1 parent 9157a2a commit a551fd5
Showing 1 changed file with 7 additions and 13 deletions.
20 changes: 7 additions & 13 deletions graph.c
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit a551fd5

Please sign in to comment.