path: root/fsck.c
diff options
authorDerrick Stolee <>2018-04-06 19:09:32 (GMT)
committerJunio C Hamano <>2018-04-11 01:47:16 (GMT)
commit891435d55da80ca3654b19834481205be6bdfe33 (patch)
treefddc1768c14c6567f7be5205bf808d8bae86981a /fsck.c
parent2d5792f0716605ff0059fe4b5c865d6821c0161e (diff)
treewide: rename tree to maybe_tree
Using the commit-graph file to walk commit history removes the large cost of parsing commits during the walk. This exposes a performance issue: lookup_tree() takes a large portion of the computation time, even when Git never uses those trees. In anticipation of lazy-loading these trees, rename the 'tree' member of struct commit to 'maybe_tree'. This serves two purposes: it hints at the future role of possibly being NULL even if the commit has a valid tree, and it allows for unambiguous transformation from simple member access (i.e. commit->maybe_tree) to method access. Signed-off-by: Derrick Stolee <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'fsck.c')
1 files changed, 3 insertions, 3 deletions
diff --git a/fsck.c b/fsck.c
index 5c8c12d..3228ca5 100644
--- a/fsck.c
+++ b/fsck.c
@@ -396,9 +396,9 @@ static int fsck_walk_commit(struct commit *commit, void *data, struct fsck_optio
name = get_object_name(options, &commit->object);
if (name)
- put_object_name(options, &commit->tree->object, "%s:", name);
+ put_object_name(options, &commit->maybe_tree->object, "%s:", name);
- result = options->walk((struct object *)commit->tree, OBJ_TREE, data, options);
+ result = options->walk((struct object *)commit->maybe_tree, OBJ_TREE, data, options);
if (result < 0)
return result;
res = result;
@@ -772,7 +772,7 @@ static int fsck_commit_buffer(struct commit *commit, const char *buffer,
err = fsck_ident(&buffer, &commit->object, options);
if (err)
return err;
- if (!commit->tree) {
+ if (!commit->maybe_tree) {
err = report(options, &commit->object, FSCK_MSG_BAD_TREE, "could not load commit's tree %s", sha1_to_hex(tree_sha1));
if (err)
return err;