Re: [PATCH v2 4/8] repository: add repo reference to index_state
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jan 22, 2021, 19:23 UTC
- Message-ID
- <xmqqczxw93ok.fsf@gitster.c.googlers.com>
- In-Reply-To
- <a0d89d7a9731adeee4e2a432843b2f4a9c232dc4.1611320639.git.gitgitgadget@gmail.com>
"Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 13 quoted lines
> From: Derrick Stolee <dstolee@microsoft.com> > > 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 <dstolee@microsoft.com> > ---
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); > }