unpack-trees: preserve cache_bottom
commit17a1bb570bcd165a3dc1c28c441bee45a941bb12
authorDerrick Stolee <dstolee@microsoft.com>
Wed, 14 Jul 2021 13:12:30 +0000 (14 13:12 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 14 Jul 2021 20:42:48 +0000 (14 13:42 -0700)
tree8321006978fae884df42ec3acc57ea7b09d72166
parentbf26c06f126219498a10ae9f8923cfb0bcbad823
unpack-trees: preserve cache_bottom

The cache_bottom member of 'struct unpack_trees_options' is used to
track the range of index entries corresponding to a node of the cache
tree. While recursing with traverse_by_cache_tree(), this value is
preserved on the call stack using a local and then restored as that
method returns.

The mark_ce_used() method normally modifies the cache_bottom member when
it refers to the marked cache entry. However, sparse directory entries
are stored as nodes in the cache-tree data structure as of 2de37c53
(cache-tree: integrate with sparse directory entries, 2021-03-30). Thus,
the cache_bottom will be modified as the cache-tree walk advances. Do
not update it as well within mark_ce_used().

Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
unpack-trees.c