From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: Jeff King <peff@peff.net>,
Michael Haggerty <mhagger@alum.mit.edu>,
Brandon Williams <bmwill@google.com>,
Stefan Beller <sbeller@google.com>,
Jonathan Nieder <jrnieder@gmail.com>
Subject: [PATCH v3 07/25] Convert check_connected to use struct object_id
Date: Sun, 15 Oct 2017 22:06:54 +0000 [thread overview]
Message-ID: <20171015220712.97308-8-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <20171015220712.97308-1-sandals@crustytoothpaste.net>
Convert check_connected and the callbacks it takes to use struct
object_id.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
builtin/clone.c | 4 ++--
builtin/fetch.c | 4 ++--
builtin/receive-pack.c | 10 +++++-----
connected.c | 18 +++++++++---------
connected.h | 4 ++--
5 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/builtin/clone.c b/builtin/clone.c
index 665a0e2673..5cd1b02d53 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -615,7 +615,7 @@ static void write_followtags(const struct ref *refs, const char *msg)
}
}
-static int iterate_ref_map(void *cb_data, unsigned char sha1[20])
+static int iterate_ref_map(void *cb_data, struct object_id *oid)
{
struct ref **rm = cb_data;
struct ref *ref = *rm;
@@ -630,7 +630,7 @@ static int iterate_ref_map(void *cb_data, unsigned char sha1[20])
if (!ref)
return -1;
- hashcpy(sha1, ref->old_oid.hash);
+ oidcpy(oid, &ref->old_oid);
*rm = ref->next;
return 0;
}
diff --git a/builtin/fetch.c b/builtin/fetch.c
index 859be91d6c..e705237fa9 100644
--- a/builtin/fetch.c
+++ b/builtin/fetch.c
@@ -727,7 +727,7 @@ static int update_local_ref(struct ref *ref,
}
}
-static int iterate_ref_map(void *cb_data, unsigned char sha1[20])
+static int iterate_ref_map(void *cb_data, struct object_id *oid)
{
struct ref **rm = cb_data;
struct ref *ref = *rm;
@@ -737,7 +737,7 @@ static int iterate_ref_map(void *cb_data, unsigned char sha1[20])
if (!ref)
return -1; /* end of the list */
*rm = ref->next;
- hashcpy(sha1, ref->old_oid.hash);
+ oidcpy(oid, &ref->old_oid);
return 0;
}
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 2da3c4cd5c..4d37a160d7 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -870,7 +870,7 @@ static void refuse_unconfigured_deny_delete_current(void)
rp_error("%s", _(refuse_unconfigured_deny_delete_current_msg));
}
-static int command_singleton_iterator(void *cb_data, unsigned char sha1[20]);
+static int command_singleton_iterator(void *cb_data, struct object_id *oid);
static int update_shallow_ref(struct command *cmd, struct shallow_info *si)
{
static struct lock_file shallow_lock;
@@ -1270,7 +1270,7 @@ static void check_aliased_updates(struct command *commands)
string_list_clear(&ref_list, 0);
}
-static int command_singleton_iterator(void *cb_data, unsigned char sha1[20])
+static int command_singleton_iterator(void *cb_data, struct object_id *oid)
{
struct command **cmd_list = cb_data;
struct command *cmd = *cmd_list;
@@ -1278,7 +1278,7 @@ static int command_singleton_iterator(void *cb_data, unsigned char sha1[20])
if (!cmd || is_null_oid(&cmd->new_oid))
return -1; /* end of list */
*cmd_list = NULL; /* this returns only one */
- hashcpy(sha1, cmd->new_oid.hash);
+ oidcpy(oid, &cmd->new_oid);
return 0;
}
@@ -1309,7 +1309,7 @@ struct iterate_data {
struct shallow_info *si;
};
-static int iterate_receive_command_list(void *cb_data, unsigned char sha1[20])
+static int iterate_receive_command_list(void *cb_data, struct object_id *oid)
{
struct iterate_data *data = cb_data;
struct command **cmd_list = &data->cmds;
@@ -1320,7 +1320,7 @@ static int iterate_receive_command_list(void *cb_data, unsigned char sha1[20])
/* to be checked in update_shallow_ref() */
continue;
if (!is_null_oid(&cmd->new_oid) && !cmd->skip_update) {
- hashcpy(sha1, cmd->new_oid.hash);
+ oidcpy(oid, &cmd->new_oid);
*cmd_list = cmd->next;
return 0;
}
diff --git a/connected.c b/connected.c
index f416b05051..4a47f33270 100644
--- a/connected.c
+++ b/connected.c
@@ -16,13 +16,13 @@
*
* Returns 0 if everything is connected, non-zero otherwise.
*/
-int check_connected(sha1_iterate_fn fn, void *cb_data,
+int check_connected(oid_iterate_fn fn, void *cb_data,
struct check_connected_options *opt)
{
struct child_process rev_list = CHILD_PROCESS_INIT;
struct check_connected_options defaults = CHECK_CONNECTED_INIT;
- char commit[41];
- unsigned char sha1[20];
+ char commit[GIT_MAX_HEXSZ + 1];
+ struct object_id oid;
int err = 0;
struct packed_git *new_pack = NULL;
struct transport *transport;
@@ -32,7 +32,7 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
opt = &defaults;
transport = opt->transport;
- if (fn(cb_data, sha1)) {
+ if (fn(cb_data, &oid)) {
if (opt->err_fd)
close(opt->err_fd);
return err;
@@ -77,7 +77,7 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
sigchain_push(SIGPIPE, SIG_IGN);
- commit[40] = '\n';
+ commit[GIT_SHA1_HEXSZ] = '\n';
do {
/*
* If index-pack already checked that:
@@ -87,17 +87,17 @@ int check_connected(sha1_iterate_fn fn, void *cb_data,
* are sure the ref is good and not sending it to
* rev-list for verification.
*/
- if (new_pack && find_pack_entry_one(sha1, new_pack))
+ if (new_pack && find_pack_entry_one(oid.hash, new_pack))
continue;
- memcpy(commit, sha1_to_hex(sha1), 40);
- if (write_in_full(rev_list.in, commit, 41) < 0) {
+ memcpy(commit, oid_to_hex(&oid), GIT_SHA1_HEXSZ);
+ if (write_in_full(rev_list.in, commit, GIT_SHA1_HEXSZ + 1) < 0) {
if (errno != EPIPE && errno != EINVAL)
error_errno(_("failed write to rev-list"));
err = -1;
break;
}
- } while (!fn(cb_data, sha1));
+ } while (!fn(cb_data, &oid));
if (close(rev_list.in))
err = error_errno(_("failed to close rev-list's stdin"));
diff --git a/connected.h b/connected.h
index 4ca325f79d..a53f03a61a 100644
--- a/connected.h
+++ b/connected.h
@@ -8,7 +8,7 @@ struct transport;
* When called after returning the name for the last object, return -1
* to signal EOF, otherwise return 0.
*/
-typedef int (*sha1_iterate_fn)(void *, unsigned char [20]);
+typedef int (*oid_iterate_fn)(void *, struct object_id *oid);
/*
* Named-arguments struct for check_connected. All arguments are
@@ -51,7 +51,7 @@ struct check_connected_options {
*
* If "opt" is NULL, behaves as if CHECK_CONNECTED_INIT was passed.
*/
-int check_connected(sha1_iterate_fn fn, void *cb_data,
+int check_connected(oid_iterate_fn fn, void *cb_data,
struct check_connected_options *opt);
#endif /* CONNECTED_H */
--
2.15.0.rc0.271.g36b669edcc
next prev parent reply other threads:[~2017-10-15 22:07 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-15 22:06 [PATCH v3 00/25] object_id part 10 brian m. carlson
2017-10-15 22:06 ` [PATCH v3 01/25] walker: convert to struct object_id brian m. carlson
2017-10-15 22:06 ` [PATCH v3 02/25] refs/files-backend: convert struct ref_to_prune to object_id brian m. carlson
2017-10-15 22:06 ` [PATCH v3 03/25] refs: convert delete_ref and refs_delete_ref to struct object_id brian m. carlson
2017-10-15 22:06 ` [PATCH v3 04/25] refs: convert update_ref and refs_update_ref to use " brian m. carlson
2017-10-15 22:06 ` [PATCH v3 05/25] refs: prevent accidental NULL dereference in write_pseudoref brian m. carlson
2017-10-15 22:06 ` [PATCH v3 06/25] refs: update ref transactions to use struct object_id brian m. carlson
2017-10-15 22:06 ` brian m. carlson [this message]
2017-10-15 22:06 ` [PATCH v3 08/25] refs: convert resolve_refdup and refs_resolve_refdup to " brian m. carlson
2017-10-15 22:06 ` [PATCH v3 09/25] refs: convert read_ref and read_ref_full to object_id brian m. carlson
2017-10-15 22:06 ` [PATCH v3 10/25] refs: convert dwim_ref and expand_ref to struct object_id brian m. carlson
2017-10-15 22:06 ` [PATCH v3 11/25] builtin/reflog: convert remaining unsigned char uses to object_id brian m. carlson
2017-10-15 22:06 ` [PATCH v3 12/25] refs: convert dwim_log to struct object_id brian m. carlson
2017-10-15 22:07 ` [PATCH v3 13/25] pack-bitmap: convert traverse_bitmap_commit_list to object_id brian m. carlson
2017-10-15 22:07 ` [PATCH v3 14/25] builtin/pack-objects: convert to struct object_id brian m. carlson
2017-10-15 22:07 ` [PATCH v3 15/25] refs: convert peel_ref " brian m. carlson
2017-10-15 22:07 ` [PATCH v3 16/25] refs: convert read_ref_at " brian m. carlson
2017-10-15 22:07 ` [PATCH v3 17/25] refs: convert reflog_expire parameter " brian m. carlson
2017-10-15 22:07 ` [PATCH v3 18/25] sha1_file: convert index_path and index_fd " brian m. carlson
2017-10-15 22:07 ` [PATCH v3 19/25] Convert remaining callers of resolve_gitlink_ref to object_id brian m. carlson
2017-10-15 22:07 ` [PATCH v3 20/25] refs: convert resolve_gitlink_ref to struct object_id brian m. carlson
2017-10-15 22:07 ` [PATCH v3 21/25] worktree: convert struct worktree to object_id brian m. carlson
2017-10-15 22:07 ` [PATCH v3 22/25] refs: convert resolve_ref_unsafe to struct object_id brian m. carlson
2017-10-15 22:07 ` [PATCH v3 23/25] refs: convert peel_object " brian m. carlson
2017-10-15 22:07 ` [PATCH v3 24/25] refs: convert read_raw_ref backends " brian m. carlson
2017-10-15 22:07 ` [PATCH v3 25/25] refs/files-backend: convert static functions to object_id brian m. carlson
2017-10-16 2:15 ` [PATCH v3 00/25] object_id part 10 Junio C Hamano
2017-10-16 23:49 ` brian m. carlson
2017-10-16 23:53 ` Kevin Daudt
2017-10-17 1:19 ` Junio C Hamano
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=20171015220712.97308-8-sandals@crustytoothpaste.net \
--to=sandals@crustytoothpaste.net \
--cc=bmwill@google.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=mhagger@alum.mit.edu \
--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).