Re: [PATCH v2 4/8] repository: add repo reference to index_state
From: Junio C Hamano <hidden>
Date: 2021-01-22 22:29:07
"Derrick Stolee via GitGitGadget" [off-list ref] writes:
From: Derrick Stolee <redacted> It will be helpful to add behavior to index operations that might trigger an object lookup. Since each index belongs to a specific repository, add a 'repo' pointer to struct index_state that allows access to this repository. This will prevent future changes from needing to pass an additional 'struct repository *repo' parameter and instead rely only on the 'struct index_state *istate' parameter. Signed-off-by: Derrick Stolee <redacted> ---
I think this makes sense, but shouldn't we insist on these bidirectional links to point at each other? Otherwise we cannot simplify the function signatures safely later. That is ...
+ /* Complete the double-reference */ + if (!repo->index->repo) + repo->index->repo = repo; +
else if (repo->index->repo != repo)
BUG("the repo->index instance does not belong to the repo???");
... a check like this?
return read_index_from(repo->index, repo->index_file, repo->gitdir); }