refs: pass NULL to resolve_ref_unsafe() if hash is not needed
This allows us to get rid of some write-only variables, among them seven SHA1 buffers. Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
René Scharfe committed
Sep 23, 2017 at 11:45 UTC
744c040b19412fa5075810eb1aced105fad96726
14 files changed
+19
-38
branch.c
+1
-2
@@ -191,9 +191,8 @@ int validate_new_branchname(const char *name, struct strbuf *ref,
191
192
if (!attr_only) {
193
const char *head;
194
- struct object_id oid;
194
196
- head = resolve_ref_unsafe("HEAD", 0, oid.hash, NULL);
195
+ head = resolve_ref_unsafe("HEAD", 0, NULL, NULL);
196
if (!is_bare_repository() && head && !strcmp(head, ref->buf))
197
die(_("Cannot force update the current branch."));
198
}
builtin/commit.c
+1
-2
@@ -1431,7 +1431,6 @@ static void print_summary(const char *prefix, const struct object_id *oid,
1431
struct rev_info rev;
1432
struct commit *commit;
1433
struct strbuf format = STRBUF_INIT;
1434
- struct object_id junk_oid;
1434
const char *head;
1435
struct pretty_print_context pctx = {0};
1436
struct strbuf author_ident = STRBUF_INIT;
@@ -1484,7 +1483,7 @@ static void print_summary(const char *prefix, const struct object_id *oid,
1483
rev.diffopt.break_opt = 0;
1484
diff_setup_done(&rev.diffopt);
1485
1487
- head = resolve_ref_unsafe("HEAD", 0, junk_oid.hash, NULL);
1486
+ head = resolve_ref_unsafe("HEAD", 0, NULL, NULL);
1487
if (!strcmp(head, "HEAD"))
1488
head = _("detached HEAD");
1489
else
builtin/log.c
+1
-2
@@ -1660,10 +1660,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
1660
check_head = 1;
1661
1662
if (check_head) {
1663
- struct object_id oid;
1663
const char *ref, *v;
1664
ref = resolve_ref_unsafe("HEAD", RESOLVE_REF_READING,
1666
- oid.hash, NULL);
1665
+ NULL, NULL);
1666
if (ref && skip_prefix(ref, "refs/heads/", &v))
1667
branch_name = xstrdup(v);
1668
else
builtin/receive-pack.c
+1
-2
@@ -1207,11 +1207,10 @@ static void check_aliased_update(struct command *cmd, struct string_list *list)
1207
const char *dst_name;
1208
struct string_list_item *item;
1209
struct command *dst_cmd;
1210
- unsigned char sha1[GIT_MAX_RAWSZ];
1210
int flag;
1211
1212
strbuf_addf(&buf, "%s%s", get_git_namespace(), cmd->ref_name);
1214
- dst_name = resolve_ref_unsafe(buf.buf, 0, sha1, &flag);
1213
+ dst_name = resolve_ref_unsafe(buf.buf, 0, NULL, &flag);
1214
strbuf_release(&buf);
1215
1216
if (!(flag & REF_ISSYMREF))
builtin/remote.c
+1
-2
@@ -558,14 +558,13 @@ static int read_remote_branches(const char *refname,
558
struct strbuf buf = STRBUF_INIT;
559
struct string_list_item *item;
560
int flag;
561
- struct object_id orig_oid;
561
const char *symref;
562
563
strbuf_addf(&buf, "refs/remotes/%s/", rename->old);
564
if (starts_with(refname, buf.buf)) {
565
item = string_list_append(rename->remote_branches, xstrdup(refname));
566
symref = resolve_ref_unsafe(refname, RESOLVE_REF_READING,
568
- orig_oid.hash, &flag);
567
+ NULL, &flag);
568
if (flag & REF_ISSYMREF)
569
item->util = xstrdup(symref);
570
else
builtin/submodule--helper.c
+2
-4
@@ -17,9 +17,8 @@
17
static char *get_default_remote(void)
18
{
19
char *dest = NULL, *ret;
20
- unsigned char sha1[20];
20
struct strbuf sb = STRBUF_INIT;
22
- const char *refname = resolve_ref_unsafe("HEAD", 0, sha1, NULL);
21
+ const char *refname = resolve_ref_unsafe("HEAD", 0, NULL, NULL);
22
23
if (!refname)
24
die(_("No such ref: %s"), "HEAD");
@@ -1089,8 +1088,7 @@ static const char *remote_submodule_branch(const char *path)
1088
return "master";
1089
1090
if (!strcmp(branch, ".")) {
1092
- unsigned char sha1[20];
1093
- const char *refname = resolve_ref_unsafe("HEAD", 0, sha1, NULL);
1091
+ const char *refname = resolve_ref_unsafe("HEAD", 0, NULL, NULL);
1092
1093
if (!refname)
1094
die(_("No such ref: %s"), "HEAD");
builtin/symbolic-ref.c
+1
-2
@@ -12,9 +12,8 @@ static const char * const git_symbolic_ref_usage[] = {
12
13
static int check_symref(const char *HEAD, int quiet, int shorten, int print)
14
{
15
- unsigned char sha1[20];
15
int flag;
17
- const char *refname = resolve_ref_unsafe(HEAD, 0, sha1, &flag);
16
+ const char *refname = resolve_ref_unsafe(HEAD, 0, NULL, &flag);
17
18
if (!refname)
19
die("No such ref: %s", HEAD);
http-backend.c
+1
-2
@@ -486,10 +486,9 @@ static int show_head_ref(const char *refname, const struct object_id *oid,
486
struct strbuf *buf = cb_data;
487
488
if (flag & REF_ISSYMREF) {
489
- struct object_id unused;
489
const char *target = resolve_ref_unsafe(refname,
490
RESOLVE_REF_READING,
492
- unused.hash, NULL);
491
+ NULL, NULL);
492
493
if (target)
494
strbuf_addf(buf, "ref: %s\n", strip_namespace(target));
log-tree.c
+1
-2
@@ -185,7 +185,6 @@ static const struct name_decoration *current_pointed_by_HEAD(const struct name_d
185
{
186
const struct name_decoration *list, *head = NULL;
187
const char *branch_name = NULL;
188
- struct object_id unused;
188
int rru_flags;
189
190
/* First find HEAD */
@@ -198,7 +197,7 @@ static const struct name_decoration *current_pointed_by_HEAD(const struct name_d
197
return NULL;
198
199
/* Now resolve and find the matching current branch */
201
- branch_name = resolve_ref_unsafe("HEAD", 0, unused.hash, &rru_flags);
200
+ branch_name = resolve_ref_unsafe("HEAD", 0, NULL, &rru_flags);
201
if (!(rru_flags & REF_ISSYMREF))
202
return NULL;
203
refs.c
+2
-4
@@ -239,8 +239,7 @@ int read_ref(const char *refname, unsigned char *sha1)
239
240
int ref_exists(const char *refname)
241
{
242
- unsigned char sha1[20];
243
- return !!resolve_ref_unsafe(refname, RESOLVE_REF_READING, sha1, NULL);
242
+ return !!resolve_ref_unsafe(refname, RESOLVE_REF_READING, NULL, NULL);
243
}
244
245
static int filter_refs(const char *refname, const struct object_id *oid,
@@ -286,12 +285,11 @@ static int warn_if_dangling_symref(const char *refname, const struct object_id *
285
{
286
struct warn_if_dangling_data *d = cb_data;
287
const char *resolves_to;
289
- struct object_id junk;
288
289
if (!(flags & REF_ISSYMREF))
290
return 0;
291
294
- resolves_to = resolve_ref_unsafe(refname, 0, junk.hash, NULL);
292
+ resolves_to = resolve_ref_unsafe(refname, 0, NULL, NULL);
293
if (!resolves_to
294
|| (d->refname
295
? strcmp(resolves_to, d->refname)
remote.c
+4
-8
@@ -466,7 +466,6 @@ static void alias_all_urls(void)
466
static void read_config(void)
467
{
468
static int loaded;
469
- struct object_id oid;
469
int flag;
470
471
if (loaded)
@@ -475,7 +474,7 @@ static void read_config(void)
474
475
current_branch = NULL;
476
if (startup_info->have_repository) {
478
- const char *head_ref = resolve_ref_unsafe("HEAD", 0, oid.hash, &flag);
477
+ const char *head_ref = resolve_ref_unsafe("HEAD", 0, NULL, &flag);
478
if (head_ref && (flag & REF_ISSYMREF) &&
479
skip_prefix(head_ref, "refs/heads/", &head_ref)) {
480
current_branch = make_branch(head_ref, 0);
@@ -1105,10 +1104,9 @@ static struct ref *make_linked_ref(const char *name, struct ref ***tail)
1104
static char *guess_ref(const char *name, struct ref *peer)
1105
{
1106
struct strbuf buf = STRBUF_INIT;
1108
- struct object_id oid;
1107
1108
const char *r = resolve_ref_unsafe(peer->name, RESOLVE_REF_READING,
1111
- oid.hash, NULL);
1109
+ NULL, NULL);
1110
if (!r)
1111
return NULL;
1112
@@ -1166,12 +1164,11 @@ static int match_explicit(struct ref *src, struct ref *dst,
1164
return -1;
1165
1166
if (!dst_value) {
1169
- struct object_id oid;
1167
int flag;
1168
1169
dst_value = resolve_ref_unsafe(matched_src->name,
1170
RESOLVE_REF_READING,
1174
- oid.hash, &flag);
1171
+ NULL, &flag);
1172
if (!dst_value ||
1173
((flag & REF_ISSYMREF) &&
1174
!starts_with(dst_value, "refs/heads/")))
@@ -1792,10 +1789,9 @@ const char *branch_get_push(struct branch *branch, struct strbuf *err)
1789
1790
static int ignore_symref_update(const char *refname)
1791
{
1795
- struct object_id oid;
1792
int flag;
1793
1798
- if (!resolve_ref_unsafe(refname, 0, oid.hash, &flag))
1794
+ if (!resolve_ref_unsafe(refname, 0, NULL, &flag))
1795
return 0; /* non-existing refs are OK */
1796
return (flag & REF_ISSYMREF);
1797
}
revision.c
+1
-2
@@ -2263,11 +2263,10 @@ static int handle_revision_pseudo_opt(const char *submodule,
2263
2264
static void NORETURN diagnose_missing_default(const char *def)
2265
{
2266
- unsigned char sha1[20];
2266
int flags;
2267
const char *refname;
2268
2270
- refname = resolve_ref_unsafe(def, 0, sha1, &flags);
2269
+ refname = resolve_ref_unsafe(def, 0, NULL, &flags);
2270
if (!refname || !(flags & REF_ISSYMREF) || (flags & REF_ISBROKEN))
2271
die(_("your current branch appears to be broken"));
2272
transport.c
+1
-2
@@ -26,7 +26,6 @@ static void set_upstreams(struct transport *transport, struct ref *refs,
26
const char *localname;
27
const char *tmp;
28
const char *remotename;
29
- unsigned char sha[20];
29
int flag = 0;
30
/*
31
* Check suitability for tracking. Must be successful /
@@ -44,7 +43,7 @@ static void set_upstreams(struct transport *transport, struct ref *refs,
43
localname = ref->peer_ref->name;
44
remotename = ref->name;
45
tmp = resolve_ref_unsafe(localname, RESOLVE_REF_READING,
47
- sha, &flag);
46
+ NULL, &flag);
47
if (tmp && flag & REF_ISSYMREF &&
48
starts_with(tmp, "refs/heads/"))
49
localname = tmp;
upload-pack.c
+1
-2
@@ -965,11 +965,10 @@ static int find_symref(const char *refname, const struct object_id *oid,
965
{
966
const char *symref_target;
967
struct string_list_item *item;
968
- struct object_id unused;
968
969
if ((flag & REF_ISSYMREF) == 0)
970
return 0;
972
- symref_target = resolve_ref_unsafe(refname, 0, unused.hash, &flag);
971
+ symref_target = resolve_ref_unsafe(refname, 0, NULL, &flag);
972
if (!symref_target || (flag & REF_ISSYMREF) == 0)
973
die("'%s' is a symref but it is not?", refname);
974
item = string_list_append(cb_data, refname);