diff options
author | Jeff King <peff@peff.net> | 2020-02-01 12:39:22 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-02-04 19:32:15 +0100 |
commit | 5290d4513496d89f84570985a0e02e97dff477ff (patch) | |
tree | 0087ed94f0234309e2d4862c1d7e6e4e809a8890 | |
parent | traverse_trees(): use stack array for name entries (diff) | |
download | git-5290d4513496d89f84570985a0e02e97dff477ff.tar.xz git-5290d4513496d89f84570985a0e02e97dff477ff.zip |
tree-walk.c: break circular dependency with unpack-trees
The unpack-trees API depends on the tree-walk API. But we've recently
introduced a dependency in tree-walk.c on MAX_UNPACK_TREES, which
doesn't otherwise care about unpack-trees at all.
Let's break that dependency by reversing the constants: we'll introduce
a new MAX_TRAVERSE_TREES which belongs to the tree-walk API. And then we
can define MAX_UNPACK_TREES in terms of that (since unpack-trees cannot
possibly work with more trees than it can traverse at once via
tree-walk).
The value for both will remain at 8. This is somewhat arbitrary and
probably more than is necessary, per ca885a4fe6 (read-tree() and
unpack_trees(): use consistent limit, 2008-03-13), but there's not
really any pressing need to reduce it.
Suggested-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | tree-walk.c | 3 | ||||
-rw-r--r-- | tree-walk.h | 2 | ||||
-rw-r--r-- | unpack-trees.h | 2 |
3 files changed, 4 insertions, 3 deletions
diff --git a/tree-walk.c b/tree-walk.c index 3093cf7098..bb0ad34c54 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -1,6 +1,5 @@ #include "cache.h" #include "tree-walk.h" -#include "unpack-trees.h" #include "dir.h" #include "object-store.h" #include "tree.h" @@ -410,7 +409,7 @@ int traverse_trees(struct index_state *istate, struct traverse_info *info) { int error = 0; - struct name_entry entry[MAX_UNPACK_TREES]; + struct name_entry entry[MAX_TRAVERSE_TREES]; int i; struct tree_desc_x tx[ARRAY_SIZE(entry)]; struct strbuf base = STRBUF_INIT; diff --git a/tree-walk.h b/tree-walk.h index 826396c8ed..a5058469e9 100644 --- a/tree-walk.h +++ b/tree-walk.h @@ -3,6 +3,8 @@ #include "cache.h" +#define MAX_TRAVERSE_TREES 8 + /** * The tree walking API is used to traverse and inspect trees. */ diff --git a/unpack-trees.h b/unpack-trees.h index ca94a421a5..ae1557fb80 100644 --- a/unpack-trees.h +++ b/unpack-trees.h @@ -6,7 +6,7 @@ #include "string-list.h" #include "tree-walk.h" -#define MAX_UNPACK_TREES 8 +#define MAX_UNPACK_TREES MAX_TRAVERSE_TREES struct cache_entry; struct unpack_trees_options; |