sparse-index API: BUG() out on NULL ensure_full_index()
Make the ensure_full_index() function stricter, and have it only accept a non-NULL "struct index_state". This function (and this behavior) was added in [1]. The only reason it needed to be this lax was due to interaction with repo_index_has_changes(). See the addition of that code in [2]. The other reason for why this was needed dates back to interaction with code added in [3]. In [4] we started calling ensure_full_index() in unpack_trees(), but the caller added in34110cd4e3
wants to pass us a NULL "dst_index". Let's instead do the NULL check in unpack_trees() itself. 1.4300f8442a
(sparse-index: implement ensure_full_index(), 2021-03-30) 2.0c18c059a1
(read-cache: ensure full index, 2021-04-01) 3.34110cd4e3
(Make 'unpack_trees()' have a separate source and destination index, 2008-03-06) 4.6863df3550
(unpack-trees: ensure full index, 2021-03-30) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Acked-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d2cdf2c285
commit
29fefafcba
@ -299,7 +299,7 @@ void expand_index(struct index_state *istate, struct pattern_list *pl)
|
||||
* If the index is already full, then keep it full. We will convert
|
||||
* it to a sparse index on write, if possible.
|
||||
*/
|
||||
if (!istate || istate->sparse_index == INDEX_EXPANDED)
|
||||
if (istate->sparse_index == INDEX_EXPANDED)
|
||||
return;
|
||||
|
||||
/*
|
||||
@ -424,6 +424,8 @@ void expand_index(struct index_state *istate, struct pattern_list *pl)
|
||||
|
||||
void ensure_full_index(struct index_state *istate)
|
||||
{
|
||||
if (!istate)
|
||||
BUG("ensure_full_index() must get an index!");
|
||||
expand_index(istate, NULL);
|
||||
}
|
||||
|
||||
|
@ -1880,7 +1880,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
|
||||
prepare_repo_settings(repo);
|
||||
if (repo->settings.command_requires_full_index) {
|
||||
ensure_full_index(o->src_index);
|
||||
ensure_full_index(o->dst_index);
|
||||
if (o->dst_index)
|
||||
ensure_full_index(o->dst_index);
|
||||
}
|
||||
|
||||
if (o->reset == UNPACK_RESET_OVERWRITE_UNTRACKED &&
|
||||
|
Loading…
Reference in New Issue
Block a user