tree-walk.c: remove the_repo from fill_tree_descriptor()

While at there, clean up the_repo usage in builtin/merge-tree.c a tiny bit. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Nguyễn Thái Ngọc Duy committed Jun 27, 2019 at 16:28 UTC 5e575807337d15dbecf88767e709df08304e3b94
9 files changed +29 -21
builtin/merge-tree.c
+13 -9
@@ -205,6 +205,7 @@ static void resolve(const struct traverse_info *info, struct name_entry *ours, s
205 static void unresolved_directory(const struct traverse_info *info,
206 struct name_entry n[3])
207 {
208 + struct repository *r = the_repository;
209 char *newbase;
210 struct name_entry *p;
211 struct tree_desc t[3];
@@ -220,9 +221,9 @@ static void unresolved_directory(const struct traverse_info *info,
221 newbase = traverse_path(info, p);
222
223 #define ENTRY_OID(e) (((e)->mode && S_ISDIR((e)->mode)) ? &(e)->oid : NULL)
223 - buf0 = fill_tree_descriptor(t + 0, ENTRY_OID(n + 0));
224 - buf1 = fill_tree_descriptor(t + 1, ENTRY_OID(n + 1));
225 - buf2 = fill_tree_descriptor(t + 2, ENTRY_OID(n + 2));
224 + buf0 = fill_tree_descriptor(r, t + 0, ENTRY_OID(n + 0));
225 + buf1 = fill_tree_descriptor(r, t + 1, ENTRY_OID(n + 1));
226 + buf2 = fill_tree_descriptor(r, t + 2, ENTRY_OID(n + 2));
227 #undef ENTRY_OID
228
229 merge_trees(t, newbase);
@@ -351,14 +352,16 @@ static void merge_trees(struct tree_desc t[3], const char *base)
352 traverse_trees(&the_index, 3, t, &info);
353 }
354
354 -static void *get_tree_descriptor(struct tree_desc *desc, const char *rev)
355 +static void *get_tree_descriptor(struct repository *r,
356 + struct tree_desc *desc,
357 + const char *rev)
358 {
359 struct object_id oid;
360 void *buf;
361
359 - if (get_oid(rev, &oid))
362 + if (repo_get_oid(r, rev, &oid))
363 die("unknown rev %s", rev);
361 - buf = fill_tree_descriptor(desc, &oid);
364 + buf = fill_tree_descriptor(r, desc, &oid);
365 if (!buf)
366 die("%s is not a tree", rev);
367 return buf;
@@ -366,15 +369,16 @@ static void *get_tree_descriptor(struct tree_desc *desc, const char *rev)
369
370 int cmd_merge_tree(int argc, const char **argv, const char *prefix)
371 {
372 + struct repository *r = the_repository;
373 struct tree_desc t[3];
374 void *buf1, *buf2, *buf3;
375
376 if (argc != 4)
377 usage(merge_tree_usage);
378
375 - buf1 = get_tree_descriptor(t+0, argv[1]);
376 - buf2 = get_tree_descriptor(t+1, argv[2]);
377 - buf3 = get_tree_descriptor(t+2, argv[3]);
379 + buf1 = get_tree_descriptor(r, t+0, argv[1]);
380 + buf2 = get_tree_descriptor(r, t+1, argv[2]);
381 + buf3 = get_tree_descriptor(r, t+2, argv[3]);
382 merge_trees(t, "");
383 free(buf1);
384 free(buf2);
builtin/rebase.c
+2 -2
@@ -840,13 +840,13 @@ static int reset_head(struct object_id *oid, const char *action,
840 goto leave_reset_head;
841 }
842
843 - if (!reset_hard && !fill_tree_descriptor(&desc[nr++], &head_oid)) {
843 + if (!reset_hard && !fill_tree_descriptor(the_repository, &desc[nr++], &head_oid)) {
844 ret = error(_("failed to find tree of %s"),
845 oid_to_hex(&head_oid));
846 goto leave_reset_head;
847 }
848
849 - if (!fill_tree_descriptor(&desc[nr++], oid)) {
849 + if (!fill_tree_descriptor(the_repository, &desc[nr++], oid)) {
850 ret = error(_("failed to find tree of %s"), oid_to_hex(oid));
851 goto leave_reset_head;
852 }
builtin/reset.c
+2 -2
@@ -79,13 +79,13 @@ static int reset_index(const struct object_id *oid, int reset_type, int quiet)
79 struct object_id head_oid;
80 if (get_oid("HEAD", &head_oid))
81 return error(_("You do not have a valid HEAD."));
82 - if (!fill_tree_descriptor(desc + nr, &head_oid))
82 + if (!fill_tree_descriptor(the_repository, desc + nr, &head_oid))
83 return error(_("Failed to find tree of HEAD."));
84 nr++;
85 opts.fn = twoway_merge;
86 }
87
88 - if (!fill_tree_descriptor(desc + nr, oid)) {
88 + if (!fill_tree_descriptor(the_repository, desc + nr, oid)) {
89 error(_("Failed to find tree of %s."), oid_to_hex(oid));
90 goto out;
91 }
notes.c
+1 -1
@@ -397,7 +397,7 @@ static void load_subtree(struct notes_tree *t, struct leaf_node *subtree,
397 struct name_entry entry;
398 const unsigned hashsz = the_hash_algo->rawsz;
399
400 - buf = fill_tree_descriptor(&desc, &subtree->val_oid);
400 + buf = fill_tree_descriptor(the_repository, &desc, &subtree->val_oid);
401 if (!buf)
402 die("Could not read %s for notes-index",
403 oid_to_hex(&subtree->val_oid));
sequencer.c
+1 -1
@@ -3194,7 +3194,7 @@ static int do_reset(struct repository *r,
3194 return error_resolve_conflict(_(action_name(opts)));
3195 }
3196
3197 - if (!fill_tree_descriptor(&desc, &oid)) {
3197 + if (!fill_tree_descriptor(r, &desc, &oid)) {
3198 error(_("failed to find tree of %s"), oid_to_hex(&oid));
3199 rollback_lock_file(&lock);
3200 free((void *)desc.buffer);
tree-diff.c
+2 -2
@@ -422,8 +422,8 @@ static struct combine_diff_path *ll_diff_tree_paths(
422 * diff_tree_oid(parent, commit) )
423 */
424 for (i = 0; i < nparent; ++i)
425 - tptree[i] = fill_tree_descriptor(&tp[i], parents_oid[i]);
426 - ttree = fill_tree_descriptor(&t, oid);
425 + tptree[i] = fill_tree_descriptor(opt->repo, &tp[i], parents_oid[i]);
426 + ttree = fill_tree_descriptor(opt->repo, &t, oid);
427
428 /* Enable recursion indefinitely */
429 opt->pathspec.recursive = opt->flags.recursive;
tree-walk.c
+4 -2
@@ -81,13 +81,15 @@ int init_tree_desc_gently(struct tree_desc *desc, const void *buffer, unsigned l
81 return result;
82 }
83
84 -void *fill_tree_descriptor(struct tree_desc *desc, const struct object_id *oid)
84 +void *fill_tree_descriptor(struct repository *r,
85 + struct tree_desc *desc,
86 + const struct object_id *oid)
87 {
88 unsigned long size = 0;
89 void *buf = NULL;
90
91 if (oid) {
90 - buf = read_object_with_reference(the_repository, oid, tree_type, &size, NULL);
92 + buf = read_object_with_reference(r, oid, tree_type, &size, NULL);
93 if (!buf)
94 die("unable to read tree %s", oid_to_hex(oid));
95 }
tree-walk.h
+3 -1
@@ -45,7 +45,9 @@ int init_tree_desc_gently(struct tree_desc *desc, const void *buf, unsigned long
45 int tree_entry(struct tree_desc *, struct name_entry *);
46 int tree_entry_gently(struct tree_desc *, struct name_entry *);
47
48 -void *fill_tree_descriptor(struct tree_desc *desc, const struct object_id *oid);
48 +void *fill_tree_descriptor(struct repository *r,
49 + struct tree_desc *desc,
50 + const struct object_id *oid);
51
52 struct traverse_info;
53 typedef int (*traverse_callback_t)(int n, unsigned long mask, unsigned long dirmask, struct name_entry *entry, struct traverse_info *);
unpack-trees.c
+1 -1
@@ -840,7 +840,7 @@ static int traverse_trees_recursive(int n, unsigned long dirmask,
840 const struct object_id *oid = NULL;
841 if (dirmask & 1)
842 oid = &names[i].oid;
843 - buf[nr_buf++] = fill_tree_descriptor(t + i, oid);
843 + buf[nr_buf++] = fill_tree_descriptor(the_repository, t + i, oid);
844 }
845 }
846