Re: [GSOC Patch v2 2/4] commit: move members graph_pos, generation to a slab
From: SZEDER Gábor <hidden>
Date: 2020-06-08 08:26:42
On Mon, Jun 08, 2020 at 01:02:35AM +0530, Abhishek Kumar wrote:
quoted hunk ↗ jump to hunk
diff --git a/commit-graph.c b/commit-graph.c index 7d887a6a2c..f7cca4def4 100644 --- a/commit-graph.c +++ b/commit-graph.c
quoted hunk ↗ jump to hunk
@@ -1302,8 +1302,8 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx) ctx->commits.nr); for (i = 0; i < ctx->commits.nr; i++) { display_progress(ctx->progress, i + 1); - if (ctx->commits.list[i]->generation != GENERATION_NUMBER_INFINITY && - ctx->commits.list[i]->generation != GENERATION_NUMBER_ZERO) + if (commit_graph_generation(ctx->commits.list[i]) != GENERATION_NUMBER_INFINITY && + commit_graph_generation(ctx->commits.list[i]) != GENERATION_NUMBER_ZERO) continue; commit_list_insert(ctx->commits.list[i], &list);@@ -1314,22 +1314,22 @@ static void compute_generation_numbers(struct write_commit_graph_context *ctx) uint32_t max_generation = 0; for (parent = current->parents; parent; parent = parent->next) { - if (parent->item->generation == GENERATION_NUMBER_INFINITY || - parent->item->generation == GENERATION_NUMBER_ZERO) { + if (commit_graph_generation(parent->item) == GENERATION_NUMBER_INFINITY || + commit_graph_generation(parent->item) == GENERATION_NUMBER_ZERO) { all_parents_computed = 0; commit_list_insert(parent->item, &list); break; - } else if (parent->item->generation > max_generation) { - max_generation = parent->item->generation; + } else if (commit_graph_generation(parent->item) > max_generation) { + max_generation = commit_graph_generation(parent->item); } } if (all_parents_computed) { - current->generation = max_generation + 1; + commit_graph_data_at(current)->generation = max_generation + 1; pop_commit(&list); - if (current->generation > GENERATION_NUMBER_MAX) - current->generation = GENERATION_NUMBER_MAX; + if (commit_graph_generation(current) > GENERATION_NUMBER_MAX) + commit_graph_data_at(current)->generation = GENERATION_NUMBER_MAX; } } }
Something about these conversions is not right, as they send compute_generation_numbers() into an endless loop, and 't5318-commit-graph.sh' hangs because of this.