[PATCH v3 1/4] alloc: introduce parsed_commits_count
- From
Abhishek Kumar <abhishekkumar8222@gmail.com>
- Date
- Jun 12, 2020, 18:40 UTC
- Message-ID
- <20200612184014.1226972-2-abhishekkumar8222@gmail.com>
- In-Reply-To
- <20200612184014.1226972-1-abhishekkumar8222@gmail.com>
Commit slab relies on uniqueness of commit->index to access data. As submodules are repositories on their own, alloc_commit_index() (which depends on repository->parsed_objects->commit_count) no longer returns unique values.
This would break tests once we move `generation` and `graph_pos` into a commit slab, as commits of supermodule and submodule can have the same index but must have different graph positions.
Let's introduce a counter variable, `parsed_commits_count` to keep track of parsed commits so far.
Signed-off-by: Abhishek Kumar <abhishekkumar8222@gmail.com> ---
CI Build for the failing tests: https://travis-ci.com/github/abhishekkumar2718/git/jobs/345413840
alloc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/alloc.c b/alloc.c index 1c64c4dd16..29f0e3aa80 100644 --- a/alloc.c +++ b/alloc.c @@ -101,7 +101,9 @@ void *alloc_object_node(struct repository *r) static unsigned int alloc_commit_index(struct repository *r) { - return r->parsed_objects->commit_count++; + static unsigned int parsed_commits_count = 0; + r->parsed_objects->commit_count++; + return parsed_commits_count++; } void init_commit_node(struct repository *r, struct commit *c)
-- 2.27.0