treewide: replace maybe_tree with accessor methods

In anticipation of making trees load lazily, create a Coccinelle
script (contrib/coccinelle/commit.cocci) to ensure that all
references to the 'maybe_tree' member of struct commit are either
mutations or accesses through get_commit_tree() or
get_commit_tree_oid().

Apply the Coccinelle script to create the rest of the patch.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee
2018-04-06 19:09:38 +00:00
committed by Junio C Hamano
parent 5bb03de102
commit 2e27bd7731
23 changed files with 101 additions and 61 deletions

4
tree.c
View File

@ -109,7 +109,7 @@ static int read_tree_1(struct tree *tree, struct strbuf *base,
oid_to_hex(entry.oid),
base->buf, entry.path);
oidcpy(&oid, &commit->maybe_tree->object.oid);
oidcpy(&oid, get_commit_tree_oid(commit));
}
else
continue;
@ -248,7 +248,7 @@ struct tree *parse_tree_indirect(const struct object_id *oid)
if (obj->type == OBJ_TREE)
return (struct tree *) obj;
else if (obj->type == OBJ_COMMIT)
obj = &(((struct commit *) obj)->maybe_tree->object);
obj = &(get_commit_tree(((struct commit *)obj))->object);
else if (obj->type == OBJ_TAG)
obj = ((struct tag *) obj)->tagged;
else