git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: "Michael Haggerty" <mhagger@alum.mit.edu>,
	"Jonathan Tan" <jonathantanmy@google.com>,
	"Stefan Beller" <sbeller@google.com>, "Jeff King" <peff@peff.net>,
	"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
	"Brandon Williams" <bmwill@google.com>
Subject: [PATCH v3 52/53] tree: convert parse_tree_indirect to struct object_id
Date: Sat,  6 May 2017 22:10:37 +0000	[thread overview]
Message-ID: <20170506221038.296722-53-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <20170506221038.296722-1-sandals@crustytoothpaste.net>

Convert parse_tree_indirect to take a pointer to struct object_id.
Update all the callers.  This transformation was achieved using the
following semantic patch and manual updates to the declaration and
definition.  Update builtin/checkout.c manually as well, since it uses a
ternary expression not handled by the semantic patch.

@@
expression E1;
@@
- parse_tree_indirect(E1.hash)
+ parse_tree_indirect(&E1)

@@
expression E1;
@@
- parse_tree_indirect(E1->hash)
+ parse_tree_indirect(E1)

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 archive.c                   | 4 ++--
 builtin/am.c                | 6 +++---
 builtin/checkout.c          | 8 ++++----
 builtin/clone.c             | 2 +-
 builtin/commit.c            | 2 +-
 builtin/ls-files.c          | 2 +-
 builtin/ls-tree.c           | 2 +-
 builtin/merge.c             | 6 +++---
 builtin/read-tree.c         | 2 +-
 builtin/reset.c             | 4 ++--
 diff-lib.c                  | 2 +-
 merge.c                     | 4 ++--
 sequencer.c                 | 2 +-
 t/helper/test-match-trees.c | 4 ++--
 tree.c                      | 4 ++--
 tree.h                      | 2 +-
 16 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/archive.c b/archive.c
index 54701e8bb..b15a922da 100644
--- a/archive.c
+++ b/archive.c
@@ -369,7 +369,7 @@ static void parse_treeish_arg(const char **argv,
 		archive_time = time(NULL);
 	}
 
-	tree = parse_tree_indirect(oid.hash);
+	tree = parse_tree_indirect(&oid);
 	if (tree == NULL)
 		die("not a tree object");
 
@@ -383,7 +383,7 @@ static void parse_treeish_arg(const char **argv,
 		if (err || !S_ISDIR(mode))
 			die("current working directory is untracked");
 
-		tree = parse_tree_indirect(tree_oid.hash);
+		tree = parse_tree_indirect(&tree_oid);
 	}
 	ar_args->tree = tree;
 	ar_args->commit_sha1 = commit_sha1;
diff --git a/builtin/am.c b/builtin/am.c
index 200d9dbed..a2867f347 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -2045,11 +2045,11 @@ static int clean_index(const struct object_id *head, const struct object_id *rem
 	struct tree *head_tree, *remote_tree, *index_tree;
 	struct object_id index;
 
-	head_tree = parse_tree_indirect(head->hash);
+	head_tree = parse_tree_indirect(head);
 	if (!head_tree)
 		return error(_("Could not parse object '%s'."), oid_to_hex(head));
 
-	remote_tree = parse_tree_indirect(remote->hash);
+	remote_tree = parse_tree_indirect(remote);
 	if (!remote_tree)
 		return error(_("Could not parse object '%s'."), oid_to_hex(remote));
 
@@ -2061,7 +2061,7 @@ static int clean_index(const struct object_id *head, const struct object_id *rem
 	if (write_cache_as_tree(index.hash, 0, NULL))
 		return -1;
 
-	index_tree = parse_tree_indirect(index.hash);
+	index_tree = parse_tree_indirect(&index);
 	if (!index_tree)
 		return error(_("Could not parse object '%s'."), oid_to_hex(&index));
 
diff --git a/builtin/checkout.c b/builtin/checkout.c
index 7f1eeea94..13365fb62 100644
--- a/builtin/checkout.c
+++ b/builtin/checkout.c
@@ -527,10 +527,10 @@ static int merge_working_tree(const struct checkout_opts *opts,
 			setup_standard_excludes(topts.dir);
 		}
 		tree = parse_tree_indirect(old->commit ?
-					   old->commit->object.oid.hash :
-					   EMPTY_TREE_SHA1_BIN);
+					   &old->commit->object.oid :
+					   &empty_tree_oid);
 		init_tree_desc(&trees[0], tree->buffer, tree->size);
-		tree = parse_tree_indirect(new->commit->object.oid.hash);
+		tree = parse_tree_indirect(&new->commit->object.oid);
 		init_tree_desc(&trees[1], tree->buffer, tree->size);
 
 		ret = unpack_trees(2, trees, &topts);
@@ -1050,7 +1050,7 @@ static int parse_branchname_arg(int argc, const char **argv,
 	new->commit = lookup_commit_reference_gently(rev, 1);
 	if (!new->commit) {
 		/* not a commit */
-		*source_tree = parse_tree_indirect(rev->hash);
+		*source_tree = parse_tree_indirect(rev);
 	} else {
 		parse_commit_or_die(new->commit);
 		*source_tree = new->commit->tree;
diff --git a/builtin/clone.c b/builtin/clone.c
index 646f28792..da2d3c1ae 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -739,7 +739,7 @@ static int checkout(int submodule_progress)
 	opts.src_index = &the_index;
 	opts.dst_index = &the_index;
 
-	tree = parse_tree_indirect(oid.hash);
+	tree = parse_tree_indirect(&oid);
 	parse_tree(tree);
 	init_tree_desc(&t, tree->buffer, tree->size);
 	if (unpack_trees(1, &t, &opts) < 0)
diff --git a/builtin/commit.c b/builtin/commit.c
index e69f466d5..6adc908b3 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -313,7 +313,7 @@ static void create_base_index(const struct commit *current_head)
 	opts.dst_index = &the_index;
 
 	opts.fn = oneway_merge;
-	tree = parse_tree_indirect(current_head->object.oid.hash);
+	tree = parse_tree_indirect(&current_head->object.oid);
 	if (!tree)
 		die(_("failed to unpack HEAD tree object"));
 	parse_tree(tree);
diff --git a/builtin/ls-files.c b/builtin/ls-files.c
index da0ff849f..f20edabe6 100644
--- a/builtin/ls-files.c
+++ b/builtin/ls-files.c
@@ -421,7 +421,7 @@ void overlay_tree_on_cache(const char *tree_name, const char *prefix)
 
 	if (get_oid(tree_name, &oid))
 		die("tree-ish %s not found.", tree_name);
-	tree = parse_tree_indirect(oid.hash);
+	tree = parse_tree_indirect(&oid);
 	if (!tree)
 		die("bad tree-ish %s", tree_name);
 
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index 5baac3ef2..ee7b293b1 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -180,7 +180,7 @@ int cmd_ls_tree(int argc, const char **argv, const char *prefix)
 	for (i = 0; i < pathspec.nr; i++)
 		pathspec.items[i].nowildcard_len = pathspec.items[i].len;
 	pathspec.has_wildcard = 0;
-	tree = parse_tree_indirect(oid.hash);
+	tree = parse_tree_indirect(&oid);
 	if (!tree)
 		die("not a tree object");
 	return !!read_tree_recursive(tree, "", 0, 0, &pathspec, show_tree, NULL);
diff --git a/builtin/merge.c b/builtin/merge.c
index 5ea7f7da9..a4a098f40 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -605,13 +605,13 @@ static int read_tree_trivial(struct object_id *common, struct object_id *head,
 	opts.verbose_update = 1;
 	opts.trivial_merges_only = 1;
 	opts.merge = 1;
-	trees[nr_trees] = parse_tree_indirect(common->hash);
+	trees[nr_trees] = parse_tree_indirect(common);
 	if (!trees[nr_trees++])
 		return -1;
-	trees[nr_trees] = parse_tree_indirect(head->hash);
+	trees[nr_trees] = parse_tree_indirect(head);
 	if (!trees[nr_trees++])
 		return -1;
-	trees[nr_trees] = parse_tree_indirect(one->hash);
+	trees[nr_trees] = parse_tree_indirect(one);
 	if (!trees[nr_trees++])
 		return -1;
 	opts.fn = threeway_merge;
diff --git a/builtin/read-tree.c b/builtin/read-tree.c
index 92eff23e4..6d45175f6 100644
--- a/builtin/read-tree.c
+++ b/builtin/read-tree.c
@@ -29,7 +29,7 @@ static int list_tree(struct object_id *oid)
 
 	if (nr_trees >= MAX_UNPACK_TREES)
 		die("I cannot read more than %d trees", MAX_UNPACK_TREES);
-	tree = parse_tree_indirect(oid->hash);
+	tree = parse_tree_indirect(oid);
 	if (!tree)
 		return -1;
 	trees[nr_trees++] = tree;
diff --git a/builtin/reset.c b/builtin/reset.c
index 3415dac5d..c782739c2 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -84,7 +84,7 @@ static int reset_index(const struct object_id *oid, int reset_type, int quiet)
 		return -1;
 
 	if (reset_type == MIXED || reset_type == HARD) {
-		tree = parse_tree_indirect(oid->hash);
+		tree = parse_tree_indirect(oid);
 		prime_cache_tree(&the_index, tree);
 	}
 
@@ -311,7 +311,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
 		struct tree *tree;
 		if (get_sha1_treeish(rev, oid.hash))
 			die(_("Failed to resolve '%s' as a valid tree."), rev);
-		tree = parse_tree_indirect(oid.hash);
+		tree = parse_tree_indirect(&oid);
 		if (!tree)
 			die(_("Could not parse object '%s'."), rev);
 		oidcpy(&oid, &tree->object.oid);
diff --git a/diff-lib.c b/diff-lib.c
index ee9df0f84..2982bf055 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -486,7 +486,7 @@ static int diff_cache(struct rev_info *revs,
 	struct tree_desc t;
 	struct unpack_trees_options opts;
 
-	tree = parse_tree_indirect(tree_oid->hash);
+	tree = parse_tree_indirect(tree_oid);
 	if (!tree)
 		return error("bad tree object %s",
 			     tree_name ? tree_name : oid_to_hex(tree_oid));
diff --git a/merge.c b/merge.c
index b0cffe16f..1d441ad94 100644
--- a/merge.c
+++ b/merge.c
@@ -79,10 +79,10 @@ int checkout_fast_forward(const struct object_id *head,
 	opts.fn = twoway_merge;
 	setup_unpack_trees_porcelain(&opts, "merge");
 
-	trees[nr_trees] = parse_tree_indirect(head->hash);
+	trees[nr_trees] = parse_tree_indirect(head);
 	if (!trees[nr_trees++])
 		return -1;
-	trees[nr_trees] = parse_tree_indirect(remote->hash);
+	trees[nr_trees] = parse_tree_indirect(remote);
 	if (!trees[nr_trees++])
 		return -1;
 	for (i = 0; i < nr_trees; i++) {
diff --git a/sequencer.c b/sequencer.c
index adcc0a953..5817d8a23 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -446,7 +446,7 @@ static int do_recursive_merge(struct commit *base, struct commit *next,
 	if (is_rebase_i(opts))
 		o.buffer_output = 2;
 
-	head_tree = parse_tree_indirect(head->hash);
+	head_tree = parse_tree_indirect(head);
 	next_tree = next ? next->tree : empty_tree();
 	base_tree = base ? base->tree : empty_tree();
 
diff --git a/t/helper/test-match-trees.c b/t/helper/test-match-trees.c
index e93950286..356d8edef 100644
--- a/t/helper/test-match-trees.c
+++ b/t/helper/test-match-trees.c
@@ -12,10 +12,10 @@ int cmd_main(int ac, const char **av)
 		die("cannot parse %s as an object name", av[1]);
 	if (get_oid(av[2], &hash2))
 		die("cannot parse %s as an object name", av[2]);
-	one = parse_tree_indirect(hash1.hash);
+	one = parse_tree_indirect(&hash1);
 	if (!one)
 		die("not a tree-ish %s", av[1]);
-	two = parse_tree_indirect(hash2.hash);
+	two = parse_tree_indirect(&hash2);
 	if (!two)
 		die("not a tree-ish %s", av[2]);
 
diff --git a/tree.c b/tree.c
index 28ce930b9..9adcd8bd4 100644
--- a/tree.c
+++ b/tree.c
@@ -232,9 +232,9 @@ void free_tree_buffer(struct tree *tree)
 	tree->object.parsed = 0;
 }
 
-struct tree *parse_tree_indirect(const unsigned char *sha1)
+struct tree *parse_tree_indirect(const struct object_id *oid)
 {
-	struct object *obj = parse_object(sha1);
+	struct object *obj = parse_object(oid->hash);
 	do {
 		if (!obj)
 			return NULL;
diff --git a/tree.h b/tree.h
index 2b2c8dbbe..0d4734b94 100644
--- a/tree.h
+++ b/tree.h
@@ -24,7 +24,7 @@ static inline int parse_tree(struct tree *tree)
 void free_tree_buffer(struct tree *tree);
 
 /* Parses and returns the tree in the given ent, chasing tags and commits. */
-struct tree *parse_tree_indirect(const unsigned char *sha1);
+struct tree *parse_tree_indirect(const struct object_id *oid);
 
 #define READ_TREE_RECURSIVE 1
 typedef int (*read_tree_fn_t)(const unsigned char *, struct strbuf *, const char *, unsigned int, int, void *);

  parent reply	other threads:[~2017-05-06 22:13 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-06 22:09 [PATCH v3 00/53] object_id part 8 brian m. carlson
2017-05-06 22:09 ` [PATCH v3 01/53] fetch-pack: convert to struct object_id brian m. carlson
2017-05-06 22:09 ` [PATCH v3 02/53] Clean up outstanding object_id transforms brian m. carlson
2017-05-06 22:09 ` [PATCH v3 03/53] Convert struct cache_tree to use struct object_id brian m. carlson
2017-05-06 22:09 ` [PATCH v3 04/53] builtin/name-rev: convert to " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 05/53] builtin/prune: " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 06/53] bundle: " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 07/53] branch: " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 08/53] builtin/blame: convert static function " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 09/53] builtin/rev-parse: convert " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 10/53] fast-import: convert internal structs " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 11/53] fast-import: convert " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 12/53] submodule: convert merge_submodule to use " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 13/53] notes-cache: convert to " brian m. carlson
2017-05-06 22:09 ` [PATCH v3 14/53] parse-options-cb: " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 15/53] reflog_expire: " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 16/53] builtin/verify-commit: " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 17/53] tag: convert parse_tag_buffer " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 18/53] http-push: convert some static functions " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 19/53] notes-utils: convert internals " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 20/53] revision: convert prepare_show_merge " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 21/53] shallow: convert shallow registration functions to object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 22/53] sequencer: convert some functions to struct object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 23/53] builtin/tag: convert " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 24/53] Convert remaining callers of lookup_commit_reference* to object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 25/53] Convert lookup_commit* to struct object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 26/53] pack: convert struct pack_idx_entry " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 27/53] builtin/unpack-objects: convert " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 28/53] Convert remaining callers of lookup_blob to object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 29/53] Convert lookup_blob to struct object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 30/53] tree: convert read_tree_1 to use struct object_id internally brian m. carlson
2017-05-06 22:10 ` [PATCH v3 31/53] builtin/reflog: convert tree_is_complete to take struct object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 32/53] Convert lookup_tree to " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 33/53] log-tree: convert " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 34/53] Convert lookup_tag " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 35/53] Convert the verify_pack callback " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 36/53] Convert struct ref_array_item " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 37/53] ref-filter: convert some static functions " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 38/53] refs: convert struct ref_update to use " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 39/53] refs/files-backend: convert many internals to " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 40/53] http-push: convert process_ls_object and descendants to object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 41/53] revision: rename add_pending_sha1 to add_pending_oid brian m. carlson
2017-05-06 22:10 ` [PATCH v3 42/53] revision: convert remaining parse_object callers to object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 43/53] upload-pack: " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 44/53] sha1_name: convert internals of peel_onion " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 45/53] builtin/read-tree: convert to struct object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 46/53] builtin/ls-files: convert overlay_tree_on_cache to object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 47/53] sequencer: convert fast_forward_to to struct object_id brian m. carlson
2017-05-06 22:10 ` [PATCH v3 48/53] merge: convert checkout_fast_forward " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 49/53] builtin/ls-tree: convert " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 50/53] diff-lib: convert do_diff_cache " brian m. carlson
2017-05-06 22:10 ` [PATCH v3 51/53] sequencer: convert do_recursive_merge " brian m. carlson
2017-05-06 22:10 ` brian m. carlson [this message]
2017-05-06 22:10 ` [PATCH v3 53/53] object: convert parse_object* to take " brian m. carlson
2017-05-08 21:53 ` [PATCH v3 00/53] object_id part 8 Jonathan Tan
2017-05-09 22:13 ` Brandon Williams

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170506221038.296722-53-sandals@crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=bmwill@google.com \
    --cc=git@vger.kernel.org \
    --cc=jonathantanmy@google.com \
    --cc=mhagger@alum.mit.edu \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    --cc=sbeller@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).