Re: [GSoC Patch 2/3] commit: convert commit->generation to a slab
From: Junio C Hamano <hidden>
Date: 2020-06-04 17:49:51
Abhishek Kumar [off-list ref] writes:
quoted hunk
In this commit, we will use the generation slab helpers introduced in last commit and replace existing uses of commit->generation using 'contrib/coccinelle/generation.cocci' Signed-off-by: Abhishek Kumar <redacted> --- alloc.c | 1 - blame.c | 2 +- commit-graph.c | 39 +++++++++++----------- commit-reach.c | 50 ++++++++++++++--------------- commit.c | 4 +-- commit.h | 1 - contrib/coccinelle/generation.cocci | 12 +++++++ revision.c | 16 ++++----- 8 files changed, 68 insertions(+), 57 deletions(-) create mode 100644 contrib/coccinelle/generation.coccidiff --git a/alloc.c b/alloc.c index 1c64c4dd16..cbed187094 100644 --- a/alloc.c +++ b/alloc.c@@ -109,7 +109,6 @@ void init_commit_node(struct repository *r, struct commit *c) c->object.type = OBJ_COMMIT; c->index = alloc_commit_index(r); c->graph_pos = COMMIT_NOT_FROM_GRAPH; - c->generation = GENERATION_NUMBER_INFINITY; } void *alloc_commit_node(struct repository *r)diff --git a/blame.c b/blame.c index da7e28800e..50e6316076 100644 --- a/blame.c +++ b/blame.c@@ -1272,7 +1272,7 @@ static int maybe_changed_path(struct repository *r, if (!bd) return 1; - if (origin->commit->generation == GENERATION_NUMBER_INFINITY) + if (generation(origin->commit) == GENERATION_NUMBER_INFINITY)
Hmmmm, as C is not all that object-oriented that lets us say "commit objects have generation() method", a plain vanilla function whose name is generation() is a bit overly vague. The field name this helper function replaces, .generation, is very localized to a commit "object" and does not have such a problem. We probably need to choose a better name in the previous step to fix it.